Linux Services (Start/Stop)

Um beim Booten eines Systems einen Dienst zu starten sind die

/etc/rc?.d/

Verzeichnisse zuständig.

  • Für normale Dienste ist es wohl das beste sie im
    /etc/rc3.d/

    (siehe Runleves) Verzeichnis zu halten. Dazu wird ein link mit

    update-rc.d

    generiert: ln -s /etc/init.d/meinDienst /etc/rc3.d/S99meinDienst.
    Das heisst dass dein Dienst nach allen anderen “99” gestartet “S” wird. Also am ende des Bootvorganges.

  • Damit dein Dienst bei Herunterfahren wieder gestoppt wird ein Link mit
    update.rc.d

    generiert: ln -s /etc/init.d/meinDienst /etc/rc6.d/K01meinDienst dabei steht “K” für kill und bedeutet dass das Script mit dem Parameter “stop” aufgerufen wird.

Damit alles richtig funktioniert sollte dein Script im

/etc/init.d/

Verzeichnis mindestens die Parameter “start” und “stop” unterstützen.

Einpflegen in das System (Generierung des Links)

sudo update-rc.d alfresco defaults
 Adding system startup for /etc/init.d/alfresco ...
   /etc/rc0.d/K20alfresco -> ../init.d/alfresco
   /etc/rc1.d/K20alfresco -> ../init.d/alfresco
   /etc/rc2.d/K20alfresco -> ../init.d/alfresco
   /etc/rc6.d/K20alfresco -> ../init.d/alfresco
   /etc/rc3.d/S99alfresco -> ../init.d/alfresco
   /etc/rc4.d/S99alfresco -> ../init.d/alfresco
   /etc/rc5.d/S99alfresco -> ../init.d/alfresco
ralwet@adonis:~$

Entfernen aus dem Init System:

# update-rc.d -f  <service> remove
update-rc.d: /etc/init.d/blah exists during rc.d purge (continuing)
 Removing any system startup links for /etc/init.d/blah ...
   /etc/rc0.d/K20blah
   /etc/rc1.d/K20blah
   /etc/rc2.d/S20blah
   /etc/rc3.d/S20blah
   /etc/rc4.d/S20blah
   /etc/rc5.d/S20blah
   /etc/rc6.d/K20blah