Runlevel scripte - Scripts selbst erstellen
Wer einen eigenen Dienst in den Boot-Ablauf einhängen möchte, kann das nach folgendem Bauplan tun: In
cd /etc/init.d
wird ein beliebiges Script (oder skeleton) kopiert. Es gibt im Internet und in entsprechenden Foren schon vorgefertigte Scripte für allerlei Einsatzzwecke.
Diese Sektion muss noch angepasst werden (das Beispiel ist von named):
### BEGIN INIT INFO # Provides: named # Required-Start: $network $remote_fs $syslog # Required-Stop: # Default-Start: 3 5 # Default-Stop: # Description: Starts internet domain name server (DNS) BIND 9 ### END INIT INFO
Zur Erklärung der einzelnen Zeilen:
Provides: <== der Name des Dienstes Required-Start: <== Liste der Dienste die VOR dem erstellten Dienst gestartet werden müssen Default-Start: <== Liste der Runlevel, in denen der Dienst gestartet wird Description: <== kurze Beschreibung des Dienstes
Danach muss das Script auch ausführbar gemacht werden, damit es auch gestartet werden kann. Das erreicht man mit:
chmod +x meinScript
Wenn dieses Attribut gesetzt ist, muss es auch noch aktiviert werden:
insserv meinScript
Diesen Schritt kann man auch über Yast -> System -> Runlevel-Editor vollziehen.
Damit das Script auch aufgerufen werden kann, muss man noch den openSUSE-spezifischen Link erstellen:
cd /usr/sbin oder cd /sbin ln -s /etc/init.d/meinScript rcmeinScript
Den Test, ob das Script startet und funktioniert, kann man mit diesen beiden Befehlen machen:
rcmeinScript start rcmeinScript stop
Der erste startet, der zweite stoppt das Script.
Weitere Dokumentation findet man mit:
man init
TIP: Mit dem Befehl
rc_status -v
kann DONE, FAILED, SKIPPED etc. ausgegeben werden. Wenn die Zeile der Ausgabe nicht stimmt, probiere
rc_status -v2
damit wird die Ausgabe zwei Zeilen höher ausgegeben.
Für die Durchführung und die Abhängigkeiten der Scripte sind bei openSUSE die Eintragungen in den vier Dateien /etc/init.d/.depend.* maßgeblich, die von insserv aktuell gehalten werden. Die Nummern für die in /etc/init.d/*.d/ angelegten Verknüpfungen sind nur mehr eine Verbeugung an die Vergangenheit (mit ihrem sequentiellen und damit langsamen Abarbeiten der Scripte), das manuelle Erstellen einer solchen Verknüpfung nützt daher nichts.