Napsal jsem malý webSocket server pomocí ruby. Spustím jej z příkazového řádku pomocí příkazu:
ruby websocket_server.rb
Tím se server spustí a bude fungovat, dokud neudržím své ssh připojení otevřené a spuštěné (dělám to na serveru, který je ve vzdálené serverové farmě, takže žádný přímý přístup).
Rád bych pochopil jak napsat dva skripty:jeden, který spustí program ruby při spuštění, a druhý, který zkontroluje (řekněme každých 30 minut), zda je program v provozu.
Jako vedlejší poznámku je mým konečným cílem mít „ tlačítko” na řídicím panelu php, aby se proces znovu spustil, pokud se zasekne, aniž byste museli čekat na proces check&restart (už jsem schopen zkontrolovat stav procesu).
Přijatá odpověď:
Ubuntu 14.04 používá upstart , takže si můžete napsat malý konfigurační soubor, který říká
jak chcete, aby upstart spravoval vaši službu, který například
pojmenujete „myweb“. Pomocí sudo vytvořte soubor s názvem /etc/init/myweb.conf
(
symbolický odkaz odtud na skutečný soubor nebude fungovat) s obsahem
něco jako:
description "run webSocket server when network ready"
start on static-network-up
respawn
exec ruby websocket_server.rb
Můžete to vyzkoušet pomocí
sudo start myweb
status myweb
sudo stop myweb
status
příkaz ukáže, zda proces stále běží. respawn
říká, že
byste chtěli, aby se automaticky restartoval, pokud zemře. Příkazy start, stop a status jsou pouze odkazy na initctl.
Viz man initctl
, man 5 init
pro formát souboru conf a pro začínající kuchařku.