Der Daemon soll nun automatisch gestartet werden.
Runlevel
Runlevel 1 ist der Single User Mode. Den Daemon hier zu starten wäre unsinnig.
Runlevel 2 bis 5 sind Multi User Modes, hier sollte er gestartet werden. Sagen wir, nur in Runlevel 2 und sonst nirgends.
Runlevel 6 und 0 sind für den Reboot bzw. Shutdown des Systems verantworlich. Hier muss getparent auf jeden Fall gestoppt werden.
Für jedes Runlevel gibt es einen Ordner, wo die Links abgelegt werden.
Der Ordner ist /etc/rc1.d für Runlevel 1 und /etc/rc2.d für Runlevel 2 usw..
Weiter Informationen zum Thema Runlevel
Aufbau eines Links
Zum Beispiel hat der Daemon syslogd ein Startlink in /etc/rc2.d
Code:
ls -l /etc/rc2.d/*sys*
... /etc/rc2.d/S10sysklogd -> ../init.d/sysklogd
Der Name des Links besteht aus einem Buchstaben, einer zweistelligen Zahl und dem eigentlichen Namen.
Der erste Buchstabe kann entweder S oder K sein. S bedeutet, dass das Script, auf das der Link verweist, mit der option "start" aufgerufen wird und K, dass das Script mit "stop" als ersten Parameter aufgerufen wird.
Die zweistellige Zahl, im Fall von Syslog ist es 10, bestimmt die Reihenfolge, in der die Links ausgeführt werden.
Also ein Link mit S10 als Initiator wird vor einem S40iger gestartet. Genauso wird ein K99 Link als letztes gestoppt.
Alles klar soweit?
Anlegen der Links
Um getparentd in Runlevel 2 zu starten und in allen Anderen zu stoppen, legt man folgende Links an:
Startlink
Code:
ln -s /etc/init.d/getparentd /etc/rc2.d/S99getparentd
Killlinks
Code:
ln -s /etc/init.d/getparentd /etc/rc1.d/K00getparentd
ln -s /etc/init.d/getparentd /etc/rc3.d/K00getparentd
ln -s /etc/init.d/getparentd /etc/rc4.d/K00getparentd
ln -s /etc/init.d/getparentd /etc/rc5.d/K00getparentd
ln -s /etc/init.d/getparentd /etc/rc6.d/K00getparentd
ln -s /etc/init.d/getparentd /etc/rc0.d/K00getparentd
Wenn nun Runlevel 2 betreten wird, startet getparent. Wechselt man zu Runlevel 1, 3, 4, 5, 6 oder 0, dann wird getparent gleich als erstes gestoppt, weil in den dazugehörigen Ordnern die K00getparentd Links liegen.
Wem das zu viel Tipparbeit ist, der hat Recht!
Debian bietet einen Befehl der einem die Tipparbeit abnimmt.
Code:
update-rc.d getparentd start 99 2 . stop 00 0 1 3 4 5 6 .
Und schon hat man alle Links mit einem Befehl angelegt.
Toll! Und warum hat er das nicht gleich gesagt?
Müssen wir denn nicht erst laufen, lernen bevor wir die 100m in 10s sprinten?
ENDE
Nach einigen Tagen Laufzeit sollte dann eine schöne Logdatei entstehen.
So siehts bei mir dann aus:
Code:
Dec 5 16:39:36 solvejg GETPARENT: Der Elternprozess von sort ist sh
Dec 7 15:16:15 solvejg GETPARENT: Der Elternprozess von sort ist sh
Dec 8 06:25:41 solvejg GETPARENT: Der Elternprozess von sort ist updatedb
Dec 9 06:25:41 solvejg GETPARENT: Der Elternprozess von sort ist updatedb
Dec 9 16:04:40 solvejg GETPARENT: Der Elternprozess von sort ist sh
Dec 10 06:01:23 solvejg GETPARENT: Der Elternprozess von find ist soffice
Dec 12 20:09:50 solvejg GETPARENT: Der Elternprozess von sort ist sh
Dec 12 20:32:56 solvejg GETPARENT: Der Elternprozess von find ist udev.postinst
Viel Spass beim Daemon schreiben!
Lesezeichen