zyrusthc-linux.no-ip.org

A Linux Fan Page .... Shellscripts , Mohaa - Cod2 - Battlefield2 - CS - CSS - ET Webinterface ......

Logo zyrusthc-linux.no-ip.org
Freitag, 14. August 2020
  • Benutzer

  • Besucher
    Heute:
    58
    Gestern:
    98
    Gesamt:
    333.644
  • Benutzer & Gäste
    3668 Benutzer registriert, davon online: 65 Gäste
 
Start Einloggen Einloggen Die Mitglieder Das Foren-Team Suchfunktion
1932 Beiträge & 333 Themen in 13 Foren
Keine neuen Beiträge, seit Ihrem letzten Besuch am 14.08.2020 - 18:08.
  Login speichern
Forenübersicht » Linux » Howto + Tips und Tricks » OpenSuSe 10.x und eigene init-Scripte mit LSB-konformen-Header

vorheriges Thema   nächstes Thema  
1 Beitrag in diesem Thema (offen) Seiten (1): (1)
Autor
Beitrag
Zyrusthc ist offline Zyrusthc  
Themenicon    OpenSuSe 10.x und eigene init-Scripte mit LSB-konformen-Header
Administrator
712 Beiträge - Alter Hase
Zyrusthc`s alternatives Ego

0. Inhalt:





1. Einleitung


In diesem Howto möchte ich euch an einem Beispiel erklären wie ihr euch eigene init-Scripte unter OpenSuSe 10.x einrichtet.


2. Der LSB-konforme-Header


SuSe erwartet bei den init-Scripten einen LSB-konformen-Header damit chkconfig danach das Script initialisieren kann.

Solch ein Header ist so aufgebaut:
### BEGIN INIT INFO
# Provides: FOO
# Required-Start: $syslog $remote_fs
# Should-Start: $time ypbind sendmail
# Required-Stop: $syslog $remote_fs
# Should-Stop: $time ypbind sendmail
# Default-Start: 3 5
# Default-Stop: 0 1 2 6
# Short-Description: FOO XYZ daemon providing ZYX
# Description: Start FOO to allow XY and provide YZ
### END INIT INFO


Eine kurze Beschreibung was was bedeutet:
Provides: Name des Dienstes.
Required-Start: Alle hier angebenen Dienste müssen bereits gestartet sein.
Should-Start: Definiert welche Dienste gestartet sein sollten. (muss nicht enthalten sein)
Required-Stop: Legt fest, welche Dienste nach dem stoppen weiter laufen sollen.
Should-Stop: Definiert, welche Dienste während des stoppens laufen sollten. (muss nicht enthalten sein)
Default-Start: Legt fest in welchen Runlevel das Script ausgeführt werden soll.
Default-Stop: Legt fest in welchen Runlevel das Script gestoppt wird.
Short-Description: Textfeld für Beschreibung des init-Scripts
Description: Textfeld für Beschreibung des init-Scripts


3. Scriptaufbau



Bei Runlevelscripten wird empfohlen einen gewissen Aufbau beizubehalten
Der Aufbau eines Scriptes sieht wie folgt aus:
. /etc/rc.status

rc_reset

case "$1" in
start)
# Aktion Start
;;
stop)
# Aktion Stop
;;
reload|restart)
# Aktion Stop
# Aktion Start
;;
status)
# Status Ausgeben
rc_status -v
;;
*)
echo "Usage: $0 {start|stop|restart|reload|status}"
exit 1
esac

rc_exit


# Aktion Start Hier wird der/die Befehle eingegeben die bei der Aktion start ausgeführt werden sollen.
# Aktion Stop Hier stehen der/die Befehle die den Prozess beenden bei Aktion stop.

Bei reload|restart kann alternativ auch $0 stop && $0 start statt der gesamten Befehle angeben werden.


4. Beispiel Szenario



Angenommen ihr betreibt einen TeamSpeakServer und wollt das dieser bei jedem Systemstart automatisch ausgeführt wird.
Euer TeamSpeakserver ist in "/home/user/tss2_rc2" installiert das Homeverzeichnis und die Dateien gehören dem Benutzer "user". Zusätzlich wollt ihr auch das der Serverprozess auch unter dem Benutzer "user" laufen soll.

Euer Startbefehl sieht dann ungefähr folgendermaßen aus:
sudo -u user /home/user/tss2_rc2/teamspeak2-server_startscript start
und euer Stopbefehl so:
sudo -u user /home/user/tss2_rc2/teamspeak2-server_startscript stop

Dann müsste euer init-Script so aussehen:


#!/bin/bash
### BEGIN INIT INFO
# Provides: teamspeak
# Required-Start: $syslog $network $local_fs
# Required-Stop: $syslog $local_fs
# Default-Start: 3 5
# Default-Stop: 0 1 2 6
# Short-Description: Teamspeak Server
# Description: Startet den Teamspeakserver
### END INIT INFO

. /etc/rc.status

rc_reset

case "$1" in
start)
cd /home/user/tss2_rc2
sudo -u user ./teamspeak2-server_startscript start

;;
stop)
cd /home/user/tss2_rc2
sudo -u user ./teamspeak2-server_startscript stop


#Alternativ
#sudo -u user kill -TERM $(cat /home/user/tss2_rc2/tsserver2.pid) 1> /dev/null 2> /dev/null
#Alternativ 2
#sudo -u user kill -TERM $(ps aux | grep server_linux | awk '{ print $2 }')[/B]
;;
reload|restart)
$0 stop
$0 start
;;
status)
# Status Ausgeben
rc_status -v
;;
*)
echo "Usage: $0 {start|stop|restart|reload|status}"
exit 1
esac

rc_exit




Das Script wird dann unter /etc/init.d abgelegt.
In diesem Fall heisst es /etc/init.d/teamspeak
Ausführbar machen mit:
chmod 755 /etc/init.d/teamspeak

Damit SuSe über alles Bescheid weiss führen wir jetzt noch ein paar Befehle aus:
# Nach /usr/sbin wechseln
cd /usr/sbin

# Symbolischen Link anlegen
ln -s ../../etc/init.d/teamspeak rcteamspeak

# chkconfig ausführen
chkconfig -a teamspeak

Jetzt solltet ihr so eine Rückmeldung bekommen:
insserv: script ossec: service ossec already provided!
insserv: can not stat(avupdater)
teamspeak 0:off 1:off 2:off 3:on 4:off 5:on 6:off

Dies Meldung sagt euch in welchen Runleveln das init-Script ausgeführt bzw. gestartet wird.

Der Dienst lässt sich jetzt bequem über den Runleveleditor in Yast start/stoppen/restart
Oder über die Console könnt ihr das mit
rcteamspeak start|stop|restart
oder
/etc/init.d/teamspeak start|stop|restart
erledigen


5. Schlusswort



Vergesst nie das chkconfig nach dem erstellen der Scripte sonst wird es nicht funktionieren.

So ich hoffe das hilft dem einen oder anderen seine Dienste in sein OpenSuSe sauber zu integrieren.



Greeez Oli


Dieser Beitrag wurde 4 mal editiert, zuletzt von Zyrusthc am 20.11.2007 - 22:00.
Beitrag vom 15.11.2007 - 19:55
Diesen Beitrag melden   nach weiteren Posts von Zyrusthc suchen Zyrusthc`s Profil ansehen Zyrusthc eine E-Mail senden Zyrusthc eine private Nachricht senden Zyrusthc`s Homepage besuchen Zyrusthc zu Ihren Freunden hinzufügen zum Anfang der Seite
Baumstruktur - Signaturen verstecken
Seiten (1): (1) vorheriges Thema   nächstes Thema

Gehe zu:  
Es ist / sind gerade 0 registrierte(r) Benutzer und 65 Gäste online. Neuester Benutzer: Scarez
Mit 3855 Besuchern waren am 02.09.2011 - 14:07 die meisten Besucher gleichzeitig online.
Aktive Themen der letzten 24 Stunden | Foren-Topuser
 
Seite in 0.22126 Sekunden generiert


Diese Website wurde mit PHPKIT WCMS erstellt
PHPKIT ist eine eingetragene Marke der mxbyte GbR © 2002-2009