Frage Wie kann ich einen Dienst konfigurieren, der beim Start ausgeführt wird?


Ich habe einen Daemon, der gut läuft, wenn ich ihn manuell mit dem starten service Befehl:

ricardo@ricardo-laptop:~$ sudo service minidlna start                   
 * Starting minidlna minidlna                                                              [ OK ] 

Es ist jedoch nicht so konfiguriert, dass es automatisch startet, wenn der PC neu gestartet wird.

Wie kann ich es so konfigurieren, dass es automatisch startet, auch wenn niemand am PC angemeldet ist?


208
2017-10-25 13:46


Ursprung


@ user154721 Welche Argumente haben Sie update-rc.d gegeben, damit Autostart funktioniert? Ich habe verschiedene Möglichkeiten ausprobiert, aber ich hatte kein Glück. - BennyTheBen


Antworten:


sudo update-rc.d minidlna defaults

Dies sollte den Dienst dem automatischen Startsystem hinzufügen. Aber wenn du bekommst:

System start/stop links for /etc/init.d/minidlna already exist.

Führe den Befehl aus

sudo update-rc.d minidlna enable

P.S.: Für weitere Details sehen Sie sich die Manpage für update-rc.d an, indem Sie den Befehl eingeben man update-rc.d


241
2017-10-25 14:09



Danke, aber was ist, wenn ich diese Ausgabe bekomme, wenn ich diesen Befehl ausführe ?: System start/stop links for /etc/init.d/minidlna already exist. - Ricardo Reyes
Ich habe in allen Dateien in / var / log nach minidlna getippt und konnte den Dienst beim Start nicht finden - Ricardo Reyes
Wenn minidlna nicht in ein Logfile schreibt, wirst du es nirgendwo finden. Schlägt es möglicherweise fehl, weil beim Start keine Netzwerkverbindung besteht? Versuchen Sie, sich die Konfiguration anzusehen, wenn es möglich ist, Debugging und / oder Logging zu aktivieren, um herauszufinden, was falsch ist. - LassePoulsen
@RicardoReyes verwenden sudo update-rc.d -f minidlna remove um die bestehenden Links zu entfernen. - Dogweather
Ich bekomme unten Fehler update-rc.d: /etc/init.d/usermanage: Datei existiert nicht - Rizwan Patel


Manchmal müssen Sie während des Startvorgangs ein Skript ausführen, z. B. eine iptables-Konfiguration beim Startvorgang ausführen. Sie müssen das Skript nicht bei jedem Neustart manuell ausführen.

Sie können Ihr Skript beim Startvorgang in Ubuntu ausführen, indem Sie es hinzufügen /etc/init.d/rc.local Datei. Schau dir die folgenden Schritte an.

  1. Öffnen /etc/rc.local Datei mit diesem Befehl:

    vim /etc/rc.local
    
  2. Fügen Sie Ihr Skript hinzu, das Sie beim Startvorgang ausführen möchten, zum Beispiel:

    sh /home/ivan/iptables.sh 
    echo 'Iptable Configured!'
    
  3. Überprüfen Sie die in dieser Datei enthaltenen Kommentare und vergewissern Sie sich, dass am Ende ein Exit 0 steht.

  4. Speichern Sie die Dateien. Und Ihr Skript wird beim Startvorgang ausgeführt.


31
2017-10-25 13:52



Kommentare von /etc/init.d/rc.local in Ubuntu 12.04 sagt "Short-Description: Führen Sie /etc/rc.local, wenn es existiert" aus, also wäre es vielleicht besser, die Skripte zu /etc/rc.local hinzuzufügen? - Sanghyun Lee
Würde diese Methode den Befehl "shutdown" an den Dienst senden oder den Prozess nach dem Herunterfahren des Betriebssystems einfach beenden? - Vadim Chekan
Vadim, rc.local wird nur beim Booten ausgeführt, beim Herunterfahren wird nichts erreicht. Der Prozess wird höchstwahrscheinlich vom Betriebssystem beim Herunterfahren beendet. - Weboide
Zu Ihrer Information: Der Unterschied zwischen rc.local vs das Hinzufügen zu init, ist, dass rc.local am Ende der init Startsequenz statt als Teil davon ausgeführt wird - BobTuckerman


  • So starten Sie einen Daemon beim Start:

    update-rc.d service_name defaults
    
  • Zu entfernen:

    update-rc.d -f service_name remove
    

Standardeinstellungen => Standardlaufstufen 2,3,4 und 5

Beispiel:

update-rc.d tomcat7 defaults

26
2018-01-15 12:20



Wenn ich diesen Befehl mache, bekomme ich "System Start / Stop-Links für /etc/init.d/tomcat7 bereits vorhanden". aber wenn ich neu starte, startet es nicht tomcat, ich muss immer "service tomcat7 start" tun. - John Little
in meinem Fall sudo update-rc.d myservice Standard wird immer ohne Ausgabe abgeschlossen und der Dienst startet nicht beim Hochfahren oder mit sudo service myservice start was auch leise abgeschlossen wird. sudo /etc/init.d/myservice startenfunktioniert aber - axk