it-swarm.com.de

Führen Sie das Programm automatisch beim Start unter Linux Ubuntu aus

Mögliches Duplikat:
Linux-Entsprechung für Windows-Start

Ich brauche ein Programm, das jedes Mal ausgeführt wird, wenn ich mein Ubuntu-Linux starte. Also müsste ich es zu meiner Liste der Startprogramme hinzufügen. Nur ein Problem: Ich müsste es über das Terminal tun.

141
Matteo Monti
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 auch mit festen und 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, den vollständigen Dateipfad explizit deklarieren (/etc/init.d/filename) für den Befehl update-rc.d ist 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.

Ein weiterer Edit

Auch wie in den Kommentaren (von Charles Brandt) ausgeführt, /filename muss ein Skript im Init-Stil sein. Eine gute Vorlage wurde ebenfalls bereitgestellt - https://github.com/fhd/init-script-template .

Ein weiterer Link zu einem anderen Artikel, nur um eine mögliche Linkfäule zu vermeiden (obwohl es traurig wäre, wenn GitHub sterben würde) - -daemons-with-init-scripts

noch ein weiteres bearbeiten

Wie in den Kommentaren (von Russell Yan) erwähnt, funktioniert dies nur im Standardmodus von update-rc.d.

Laut dem Handbuch von update-rc.d kann es in zwei Modi ausgeführt werden: "Die Computer, die den Legacy-Modus verwenden, haben 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 .

181
Dave Lasley