Signály lze odesílat pomocí kill
utility nebo kill syscall. Samozřejmě můžete zkusit zjistit, kdo vysílá ten signál nebo odpojit vaše terminály nebo síťová připojení, ale existuje jednodušší praktický způsob, jak váš problém vyřešit.
Když má kód běžet jako démon, ale ve skutečnosti tomu tak není (stejně jako ten váš), existuje obal, který dokáže změnit jakýkoli program na démona. Překvapení - tento obal se nazývá daemon
! Má spoustu možností, pro vás pravděpodobně nejdůležitější, možnost automaticky restartovat váš nástroj, pokud by někdy z jakéhokoli důvodu zemřel.
Pokud tento příkaz není na vašem Ubuntu nainstalován, stačí sudo apt-get install daemon
a man daemon
abyste mohli začít.
O SIGHUP je třeba poznamenat několik věcí. Za prvé, jeho původ je z konceptu zavěšení, tj. ztráty spojení s konzolí přes něco jako modem. V moderním jazyce to obecně znamená, že ztratilo své kontrolní tty. Pokud jste se nepostarali o to, abyste se odpojili od svého tty, jakýkoli program spuštěný v daném terminálu obdrží při zavření terminálu SIGHUP. Podrobnosti o tom, jak to provést ve vašem programu, naleznete zde. Mezi další možnosti patří:
- spuštění vašeho programu v
screen
nebotmux
- spusťte svůj program s
nohup
nebo nějaký jiný daemonizační framework
Druhou možností je, že něco záměrně posílá vašemu procesu SIGHUP, který se podle "tradice" často používá k signalizaci procesu, že by si měl znovu přečíst svou konfiguraci.