Linux script Autostart mit init.d

Services (Dienste) werden unter Debian und auf Debian basierenden Linux Distributionen wie Ubuntu mit den sogenannten Init Skripts gestartet und gestoppt. Diese befinden sich unter /etc/init.d/ und werden mit der Angabe des Services und dem entsprechenden Kommando gestoppt oder gestartet.

Ich nehme für mein Beispiel den Dienst vom Apache Webserver (/etc/init.d/apache2) und zeige wie man mit dem Befehl update-rc.d die Austostart Skripte entfernt, hinzufügt und modifiziert

Dienste unter Debian Linux mit Init Skripts starten und stoppen

 

Apache Webserver Dienst (Service) starten:

[bash]/etc/init.d/apache2 start[/bash]

Apache Webserver Dienst (Service) stoppen:

[bash]/etc/init.d/apache2 stop[/bash]

Bei einem Serverstart wird in den Verzeichnissen /etc/rc?.d/ nach den Skripten gesucht welche automatisch beim Boot ausgeführt werden. ? steht hierbei für das entsprechende Runlevel. In diesen Verzeichnissen ist der eigentliche Befehl /etc/init.d/apache2 mit einem symbolischen Link verankert.

So ist der Symlink für das Apache Start/Stop Skript in den Runlevels eingebunden:

[bash]lrwxrwxrwx 1 root root 17 Feb 23 2012 /etc/rc0.d/K01apache2 -> ../init.d/apache2
lrwxrwxrwx 1 root root 17 Feb 23 2012 /etc/rc1.d/K01apache2 -> ../init.d/apache2
lrwxrwxrwx 1 root root 17 Feb 23 2012 /etc/rc2.d/S02apache2 -> ../init.d/apache2
lrwxrwxrwx 1 root root 17 Feb 23 2012 /etc/rc3.d/S02apache2 -> ../init.d/apache2
lrwxrwxrwx 1 root root 17 Feb 23 2012 /etc/rc4.d/S02apache2 -> ../init.d/apache2
lrwxrwxrwx 1 root root 17 Feb 23 2012 /etc/rc5.d/S02apache2 -> ../init.d/apache2
lrwxrwxrwx 1 root root 17 Feb 23 2012 /etc/rc6.d/K01apache2 -> ../init.d/apache2[/bash]

Wie man sieht ist bei den Runlevels 0,1 und 6 ein K am Anfang des symbolischen Link und bei den Runlevels 2,3,4 und 5 ein S. Diese beiden Buchstaben stehen für Kill und Start.
Runlevel 0: halt – fährt das System herunter ohne es neu zu starten
Runlevel 1: single user mode – Startet das System im Minimalbetrieb ohne Netzwerk.
Runlevel 2,3,4,5: multi user mode –  In diesen Runleveln wird gearbeitet. Debian läuft standardmäßig im Runlevel 2
Runlevel 6: reboot–  startet das System neu.

[sam id=“2″ codes=“true“]

Linux Service (Dienst) aus dem Autostart entfernen

Um nun einen Dienst (Service) aus dem Autostart zu entfernen wird mit „update-rc.d -f Dienstname remove“ der benannte Dienst aus allen runlevels entfernt (bei Ubuntu wird vor dem Befehl ein sudo benötigt):

[bash]update-rc.d -f apache2 remove[/bash]

Die Symlinks wurden aus /etc/rc?.d/ entfernt. Der Dienst kann aber nach wie vor von Hand gestartet werden. /etc/init.d/ Tipp: mit dem Flag -n kann man einen Trockenlauf durchführen um zu sehen was passieren wird

Linux Service beim Boot ausführen (Autostart)

Um einen Service nun bei Systemstart automatisch ausführen zu lassen werden die Symlinks in /etc/rc?.d/ hinzugefügt

[bash]update-rc.d apache2 defaults[/bash]

Die Option ‘defaults’ startet den Dienst in den Runlevels 0,1,2,3 und stoppt ihn in 4, 5, 6.

Text basierte GUI rcconf zum einfachen Verwalten

Mit dem Debian Runlevel Configuration Tool (kurz: rcconf) ist es ganz einfach via Häkchen möglich die entsprechenden Dienste auszuwählen, welche beim Systemstart ausgeführt werden sollen. rcconf installieren:

[bash]apt-get install rcconf[/bash]

rcconf ausführen:

[bash]rcconf[/bash]

Drucken E-Mail