Ho scritto un piccolo server webSocket usando ruby. Lo eseguo dalla riga di comando usando il comando:
ruby websocket_server.rb
Questo avvierà il server e funzionerà finché non manterrò la mia connessione ssh aperta e funzionante (lo sto facendo su un server che si trova in una server farm remota, quindi nessun accesso diretto).
Mi piacerebbe capire come scrivere due script:uno che avvierà il programma ruby all'avvio e l'altro che verificherà (diciamo ogni 30 minuti) se il programma è attivo e funzionante.
Come nota a margine il mio obiettivo finale è quello di avere un " pulsante” su una dashboard php per riavviare il processo se si blocca senza dover attendere il processo di verifica e riavvio (sono già in grado di controllare lo stato del processo).
Risposta accettata:
Ubuntu 14.04 usa upstart , quindi puoi scrivere un piccolo file di configurazione che dice
come vuoi che upstart gestisca il tuo servizio, che, ad esempio, chiami
“myweb”. Usando sudo crea un file chiamato /etc/init/myweb.conf
(un
collegamento simbolico da lì a un file reale non funzionerà) con contenuti
qualcosa come:
description "run webSocket server when network ready"
start on static-network-up
respawn
exec ruby websocket_server.rb
Puoi provarlo con
sudo start myweb
status myweb
sudo stop myweb
Lo status
comando mostrerà se il processo è ancora in esecuzione. respawn
dice che
vorresti che si riavviasse automaticamente se si spegne. I comandi start, stop e status sono tutti solo link a initctl.
Vedi man initctl
, man 5 init
per il formato file conf e il ricettario upstart.