sudo mv /filename /etc/init.d/
sudo chmod +x /etc/init.d/filename
sudo update-rc.d filename defaults
Das Skript sollte jetzt beim Booten starten. Beachten Sie, dass diese Methode sowohl mit Hardlinks als auch mit symbolischen Links ( ln
) funktioniert .
Bearbeiten
Zu diesem Zeitpunkt des Startvorgangs ist PATH noch nicht festgelegt. Daher ist es wichtig, dass durchgehend absolute Pfade verwendet werden. ABER, wie in den Kommentaren von Steve HHH ausgeführt, ist die explizite Deklaration des vollständigen Dateipfads ( /etc/init.d/filename
) für den Befehl update-rc.d in den meisten Linux-Versionen nicht gültig. Gemäß der Manpage für update-rc.d ist der zweite Parameter ein Skript in /etc/init.d/*
. Der obige Code wurde aktualisiert, um dies widerzuspiegeln.
Noch eine Bearbeitung
Wie in den Kommentaren (von Charles Brandt) erwähnt, /filename
muss es sich auch um ein Skript im Init-Stil handeln. Eine gute Vorlage wurde ebenfalls bereitgestellt - https://github.com/fhd/init-script-template .
Ein weiterer Link zu einem anderen Artikel, um mögliche Linkfäule zu vermeiden (obwohl es traurig wäre, wenn GitHub sterben würde) - http://www.linux.com/learn/tutorials/442412-managing-linux-daemons-with-init-scripts
noch eine andere Bearbeitung
Wie in den Kommentaren (von Russell Yan) erwähnt, funktioniert dies nur im Standardmodus von update-rc.d.
Laut Handbuch von update-rc.d kann es in zwei Modi ausgeführt werden: "Die Computer, die den Legacy-Modus verwenden, verfügen über eine Datei /etc/init.d/.legacy-bootordering
". In diesem Fall müssen Sie die Sequenz- und Runlevel-Konfiguration über Befehlszeilenargumente übergeben.
Das äquivalente Argument für das obige Beispiel lautet
sudo update-rc.d filename start 20 2 3 4 5 . stop 20 0 1 6 .