mata e reinicia o processo pelo cron

1

Eu tenho o script python sendo executado em uma máquina remota, ele para de responder periodicamente, portanto, ssh in, mato o processo existente e, em seguida, reinicio-o. Eu tenho que fazer isso várias vezes por semana e está causando longos períodos de inatividade quando não estou por perto. Eu gostaria de reiniciá-lo a cada hora pelo cron - mas o reinício não funciona a menos que eu mate o processo primeiro. Como eu iria matar o processo pelo cron? Ou haveria uma solução mais eficiente?

    
por Joe 30.01.2012 / 12:06

2 respostas

1

Uma maneira eficiente é alterar seu script onde ele fecha todos os fluxos de entrada, soquete e outros e, em seguida, abri-lo novamente (como uma reinicialização completa).

Mas o seu caminho também é bom aqui é como você faz isso: man killall

    
por 30.01.2012 / 12:17
4

Uma maneira simples de ativar a eliminação e reinicialização do seu processo seria o comando killall -9 $name_of_binary .

Um método mais sofisticado é criar um arquivo com o PID de processo. Por exemplo, poderia ser iniciado assim:

$name_of_binary &
echo $! > $pidfile

Então o processo pode ser morto assim:

kill -9 $(cat $pidfile) && rm $pidfile

Você também pode incorporar verificações que $pidfile não existem antes de iniciar seu processo & c.

    
por 30.01.2012 / 12:21