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:

/etc/init.d/apache2 start

Apache Webserver Dienst (Service) stoppen:

/etc/init.d/apache2 stop

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:

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

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.

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):

update-rc.d -f apache2 remove

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

update-rc.d apache2 defaults

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:

apt-get install rcconf

rcconf ausführen:

rcconf

rcconf Debian Runlevel Configuration Tool

QuickTipp: Ubuntu und Debian Autostart von Services via init Skripts und update-rc.d + GUI
4 (80%) 10 Bewertungen

Über Patrick Schoyswohl

Hallo, mein Name ist Patrick Schoyswohl und ich bin Systemadministrator in einer Agentur für neue Medien und seit 2009 Betreiber und leidenschaftlicher Blogger von SysADMINsLife.com. Meine Leidenschaft gehört den Webservern und der Serverüberwachung auf Open-Source Basis. Falls du gefallen an meinen Artikel hast, kannst du mir gerne auf Google+, Facebook oder Twitter folgen.

Auch cool

apache logo

HowTo: Apache mit php-fpm und mod-fastcgi unter Debian Wheezy

Installation des Apache Webservers mit PHP-FPM und mod_fastcgi unter Debian Wheezy. So funktioniert das Setup… …

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

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.