GNU/Linux >> Znalost Linux >  >> Linux

Jak zajistím, aby můj webový server Golang běžel na pozadí?

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í 30 příkaz, který zahodí signál HANGUP.

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.


Linux
  1. Jak spustit příkaz Linux na pozadí a odpojit proces v terminálu

  2. Jak změnit název hostitele na webovém serveru cPanel

  3. Jak spustit proces Rsync na pozadí

  1. Ssh – Jak vytvořit proces, který zahájím během relace Ssh, která běží po skončení relace?

  2. Jak získat ID procesu na pozadí?

  3. Jak získat ID procesu pro ukončení procesu nohup?

  1. Linux – jak získat čas nástěnných hodin běžícího procesu?

  2. Jak začít potopu na pozadí?

  3. Jak nainstalovat webový server Apache na Ubuntu