Nejdříve jednoduché / použitelné věci
Pokud chcete spouštěcí skript bez velkého úsilí (tj. zabývat se procesem a nechat jej pouze spravovat systémem), můžete vytvořit 02
servis. Podrobný popis, jak to udělat, najdete v Gregově odpovědi. Poté můžete službu spustit pomocí
systemctl start myserver
Dříve bych doporučoval vyzkoušet 14
nebo něco podobného pro jemnější granuarlitu týkající se správy zdrojů a oprávnění, ale systemd to již pokrývá.
Použití shellu
Svůj proces můžete začít takto:
nohup ./myexecutable &
21
řekne shellu, aby spustil příkaz na pozadí a ponechal jej v seznamu úloh. U některých shellů je úloha ukončena, pokud se nadřazený shell ukončí pomocí signálu HANGUP. Chcete-li tomu zabránit, můžete příkaz spustit pomocí
To však nefunguje, pokud volaný proces znovu připojí signál HANGUP.
Abyste si byli opravdu jisti, musíte proces odstranit ze seznamu úloh shellu. U dvou dobře známých shellů toho lze dosáhnout následovně:
bash:
./myexecutable &
disown <pid>
zsh:
./myexecutable &!
Zabíjení vaší práce na pozadí
Normálně shell vypíše PID procesu, který pak může být ukončen pomocí 48
příkaz k zastavení serveru. Pokud váš shell nevytiskne PID, můžete jej získat pomocí
echo $!
přímo po provedení. Tím se vytiskne PID rozvětveného procesu.
Ke správě procesu můžete použít Supervisord.