executa um programa ruby na inicialização

2

Eu escrevi um pequeno servidor webSocket usando ruby. Eu corro da linha de comando usando o comando:

ruby websocket_server.rb

Isso elevará o servidor e funcionará até que eu mantenha minha conexão ssh aberta e em execução (estou fazendo isso em um servidor que está em um farm de servidores remoto, portanto não há acesso direto). Eu gostaria de entender como escrever dois scripts: um que iniciará o programa ruby na inicialização e o outro que verificará (digamos a cada 30 minutos) se o programa está ativo e em execução. Como um sidenote meu objetivo final é ter um "botão" em um painel php para iniciar o processo novamente se ele trava sem ter que esperar pelo check & amp; processo de reinicialização (eu já sou capaz de verificar o status do processo).

    
por Lelio Faieta 12.08.2015 / 12:03

1 resposta

1

O Ubuntu 14.04 usa upstart , então você pode escrever um pequeno arquivo de configuração dizendo como você quer o upstart para gerenciar seu serviço, que, por exemplo, você nome "myweb". Usando o sudo, crie um arquivo chamado /etc/init/myweb.conf (a link simbólico de lá para um arquivo real não vai funcionar) com o conteúdo algo como:

description "run webSocket server when network ready"
start on static-network-up
respawn
exec ruby websocket_server.rb

Você pode testar isso com

sudo start myweb
status myweb
sudo stop myweb

O comando status mostrará se o processo ainda está em execução. respawn diz que você gostaria de reiniciar automaticamente se ele morrer. Os comandos start, stop e status são todos links para o initctl. Veja man initctl , man 5 init para o formato de arquivo conf e o livro de receitas inicial .

    
por meuh 13.08.2015 / 14:03