Píšu jednoduchou aplikaci pro démony používající C/C++ a chci, aby se spustila při spuštění Linuxu.
Pokusil jsem se upravit /etc/init.d/skeleton přidat skript do adresáře init.d následovně
-
přidal moji aplikaci démona do
/usr/sbin/adresář a změněnNAME=myDaemon -
napište
update-rc.d myDaemon defaultv Terminálu -
a přidal symbolické odkazy na
rc#.dadresáře
Ale nefungovalo to.
Můj druhý pokus byl upravit rc.local jako
/usr/sbin/myDaemon start
Ale ani toto nefungovalo.
Jak mohu spustit svého démona s OS? Chci vše dělat programově.
Používám Ubuntu 10.10, ale pokud existuje obecné řešení pro všechny distribuce, bylo by to skvělé!
Přijatá odpověď:
neupravíte /etc/init.d/skeleton soubor. Kopírujete do nového souboru /etc/init.d/mamoudservice (nahraďte mamoudservice s vhodnějším názvem) a poté upravte tento nový soubor vhodně.
Poté přidáte symbolický odkaz z /etc/rc2.d/S99mamoudservice na /etc/init.d/mamoudservice atd.
Použijte např.
/bin/bash -vx /etc/init.d/mamoudservice start
abyste pochopili, jak bash shell interpretuje váš skript.
Pokud váš démonský program /usr/sbin/mamouddaemon je kódován v C nebo v C++, doporučuji použít openlog a syslog uvnitř, alespoň pro získání ladicích zpráv (nevypisujte do stderr nebo stdout v démonu to nikam nevede).
Alternativa k vlastnímu /etc/init.d/mamoudservice skript může vložit @reboot záznam ve vašem crontab