Home / Linux / QuickTipp: Ubuntu und Debian Autostart von Services via init Skripts und update-rc.d + GUI

QuickTipp: Ubuntu und Debian Autostart von Services via init Skripts und update-rc.d + GUI

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]

rcconf Debian Runlevel Configuration Tool

3.6/5 - (19 votes)

Auch cool

Linux richtig anwenden: Tipps und Tricks für eine optimale Erfahrung

Die Kombination aus Spiele-Plattformen, und dem Betriebssystem Linux mag auf den ersten Blick ungewöhnlich erscheinen. …

6 Kommentare

  1. Super wusste gar nicht, dass es sowas wie rrconf gibt 🙂 verwalte meine scripte immer mit update-rc.d

  2. Auch wieder was dazugelernt. Danke

  3. Das habe ich gesucht. Danke!

  4. Super, rcconf war mir neu. 🙂

  5. Joachim Pechstedt

    Hallo,

    wäre mal interessant zu wissen in welchem Runlevel man meinetwegen einen Gameserver starten sollte. Default oder wie der Apache2 0,1 und 6 Kill und 2,3,4,5 Start?

    Wie sagt man denn Debian er soll ein Script autostarten was meinetwegen unter /home/user1/ liegt und autostart.sh heißt und im Namen von user1 gestartet werden soll?

    Schönes Wochenende

    • Hallo Joachim,

      das ist natürlich abhängig vom Dienst selbst. Aber bei einem Gameserver würde ich es genauso empfehlen, wie du es geschrieben hast. 2,3,4,5 Start und 0,1,6 Kill.

      Grundsätzlich kannst du von deinem Skript jederzeit einen Symlink nach /etc/init.d setzen. Oder du baust dir ein eigenes Startskript in /etc/init.d, welches die Befehle von /home/user1/ verwendet.
      Andere User verwende ich in den Skripts mit einem „su“. Sieh dir mal mein Teamspeak 3 Startskript an, ich denke da wirst du ein wenig schlauer. 😉

      Gruß
      Patrick