Revision [13260]

This is an old revision of DaemonEinrichtenDebian made by ToBo on 2012-03-17 21:30:28.

 

Daemon einrichten


Einen neuen Daemon unter Debian einzurichten ist nicht mit einer Zeile getan.

Die erste Voraussetzung ist, es existiert bereits ein Skript wie in dem nachfolgenden Beispiel, welches im Systemhintergrund als "Daemon" laufen soll. Dieses Skript muss eine Endlosschleife enthalten. Auf das Backup-Skript (usbautobackup.sh) wird nicht näher eingegangen.

/home/root/backup/usbautobackup.sh
#!/bin/sh
while [ 1 ]
do

    # place your code here

done



Als zweiten Schritt wird unter /etc/init.d/ ein Start-Skript erstellt, dass beim Wechsel von Runlevel zu Runlevel vom System aufgerufen wird.

/etc/init.d/autobackup
#!/bin/sh
# Andreas Tobola, 2012

# The name of the deamon
DAEMON=autobackup

touch /var/lock/$DAEMON

# Carry out specific functions when asked to by the system
case "$1" in
  start)
    start-stop-daemon --background --start --pidfile /var/run/$DAEMON.pid --make-pidfile --exec /home/root/backup/usbautobackup.sh
    echo "USB bar auto backup daemon started."
    ;;
  stop)
    start-stop-daemon --stop --pidfile /var/run/$DAEMON.pid
    echo "USB bar auto backup daemon stoped."
    ;;
  *)
    echo "Usage: /etc/init.d/$DAEMON {start|stop}"
    exit 1
    ;;
esac

exit 0


Geeignete Rechte setzen
chmod 755 /etc/init.d/autobackup


Der nachfolgende Test sollte ergeben:
# /etc/init.d/autobackup
USB bar auto backup daemon started.
# /etc/init.d/autobackup
USB bar auto backup daemon stoped.


Damit das System den Daemon automatisch beim Wechsel der Runlevel startet bzw. stopt, muss dieses zumindest unter dem aktuellen Runlevel verlinkt werden. Mit dem Befehl runlevel, lässt sich herausfinden in welchem Runlevel das System im Normalfall arbeitet. Für Runlevel 2 wechselt man in das Verzeichnis /etc/rc2.d/. Für Runlevel 3 entsprechend /etc/rc3.d/. Die Nummer 80 im Beispiel gibt an, in welcher Reihenfolge die Skripte gestartet werden. In dem fall an stelle 82. Dazu schaut man sich in /etc/rc2.d/ was dort nach einander gestartet wird und wählt dann eine entsprechende Nummer, damit schon das Grundsystem verfügbar ist, wenn das eigene Skript gestartet wird. Wenn man die symbolischn Links unter /etc/rc2.d/ zu kryptisch empfindet, so wählt man eine recht hohe Nummer, notfalls 99. Nummer dürfen mehrfach vergeben werden. Man erstellt eine Datei mit S für Start (Starten beim Eintritt in den Runlevel) und eine Datei mit K für Kill (beim Verlassen des Runlevels beenden).
cd /etc/rc2.d/
ln -s /etc/init.d/autobackup S82autobackup
ln -s /etc/init.d/autobackup K82autobackup


Alternativ können unter Debian die üblichen symbolischen Links wie folgt automatisch erstellt werden, allerdings rate ich davon ab.
update-rc.d autobackup defaults


Und wenn die Links wieder weg sollen, dann gib man dem Computer das folgende Kommando:
update-rc.d -f  autobackup remove




Siehe auch
Valid XHTML :: Valid CSS: :: Powered by WikkaWiki