Runlevel scripte - Scripts selbst erstellen: Unterschied zwischen den Versionen

Aus Linupedia.org
Wechseln zu: Navigation, Suche
K (Runlevel scripte - Scripts selber erstellen wurde nach Runlevel scripte - Scripts selbst erstellen verschoben: Es heisst im deutschen Sprachgebrauch immer noch "selbst" und nicht "selber"...)
(Der letzte Absatz (Durchführung und Abhängigkeiten) wurde hinzugefügt.)
 
Zeile 1: Zeile 1:
Wer einen eigenen Dienst in den [[Bootvorgang|Boot-Ablauf]] einhängen möchte kann das nach folgendem Bauplan tun:  
+
Wer einen eigenen Dienst in den [[Bootvorgang|Boot-Ablauf]] einhängen möchte, kann das nach folgendem Bauplan tun: In
 
   
 
   
 
  cd /etc/init.d  
 
  cd /etc/init.d  
dort ein beliebiges Script kopieren (oder den skeleton verwenden). Es gibt im Internet und in entsprechenden Foren schon vorgefertigte Scripte für allerlei Einsatzzwecke.  
+
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:  
+
Diese Sektion muss noch angepasst werden (das Beispiel ist von named):  
 
    
 
    
 
  ### BEGIN INIT INFO  
 
  ### BEGIN INIT INFO  
Zeile 14: Zeile 14:
 
  # Description: Starts internet domain name server (DNS) BIND 9  
 
  # Description: Starts internet domain name server (DNS) BIND 9  
 
  ### END INIT INFO
 
  ### END INIT INFO
(Beispiel von named)
 
 
 
 
Zur Erklärung der einzelnen Zeilen:  
 
Zur Erklärung der einzelnen Zeilen:  
Povides:       <== der Name des Dienstes  
+
Provides:       <== der Name des Dienstes  
Required-Start: <== Liste der Dienste die VOR dem erstellten Dienst gestartet werden müssen  
+
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  
+
Default-Start:  <== Liste der Runlevel, in denen der Dienst gestartet wird  
Description:    <== kurze Beschreibung des Dienstes  
+
Description:    <== kurze Beschreibung des Dienstes  
+
Danach muss das Script auch ausführbar gemacht werden, damit es auch gestartet werden kann. Das erreicht man mit:
Danach muss das Script auch ausführbar gemacht werden, damit es auch gestartet werden kann. Das erreicht man mit
 
 
  chmod +x meinScript  
 
  chmod +x meinScript  
 
Wenn dieses Attribut gesetzt ist, muss es auch noch aktiviert werden:  
 
Wenn dieses Attribut gesetzt ist, muss es auch noch aktiviert werden:  
 
  insserv meinScript  
 
  insserv meinScript  
Diesen Schritt kann man auch über Yast -> System -> Runlevel- Editor vollziehen.  
+
Diesen Schritt kann man auch über Yast -> System -> Runlevel-Editor vollziehen.  
 
   
 
   
Damit das Script auch aufgerufen werden kann, muss man noch den SuSE-spezifischen Link erstellen:  
+
Damit das Script auch aufgerufen werden kann, muss man noch den openSUSE-spezifischen Link erstellen:  
 
  cd /usr/sbin oder cd /sbin  
 
  cd /usr/sbin oder cd /sbin  
 
  ln -s /etc/init.d/meinScript rcmeinScript  
 
  ln -s /etc/init.d/meinScript rcmeinScript  
Zeile 37: Zeile 34:
 
Der erste startet, der zweite stoppt das Script.  
 
Der erste startet, der zweite stoppt das Script.  
  
Weitere Dokumentation findet man mit  
+
Weitere Dokumentation findet man mit:
 
  man init  
 
  man init  
 
 
TIP:  
 
TIP:  
 
Mit dem Befehl  
 
Mit dem Befehl  
 
  rc_status -v  
 
  rc_status -v  
kann das DONE, FAILED, SKIPPED etc ausgegeben werden.  
+
kann DONE, FAILED, SKIPPED etc. ausgegeben werden.  
 
Wenn die Zeile der Ausgabe nicht stimmt, probiere
 
Wenn die Zeile der Ausgabe nicht stimmt, probiere
 
  rc_status -v2  
 
  rc_status -v2  
damit wird die Ausgabe zwei Zeilen höher ausgegeben
+
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.
  
 
[[Kategorie:Allgemeines]]
 
[[Kategorie:Allgemeines]]
 
[[Kategorie:Programmierung]]
 
[[Kategorie:Programmierung]]

Aktuelle Version vom 23. November 2010, 21:59 Uhr

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.