grep script de reinicialização se não estiver em execução

1

Oi pessoal Estou correndo em um problema aqui que eu preciso ter um script php nohup executado em segundo plano e verifique se ele está sempre em execução e reiniciado se ele falhar. Eu corro o seguinte script bash usando um trabalho de crontab a cada minuto,

#!/usr/bin/bash
ps -ef|grep -v grep |grep script_name
if [ $? != 0 ]; then
  nohup php path/to/script/script_name &
fi

Eu mato meu script manualmente, mas ele nunca é reiniciado, estou atualmente na necessidade de ter este trabalho no centos 6.5. Eu testei a mesma configuração no centos 7.1 e está funcionando. Possivelmente existe uma alternativa que funcione no centos 6.5?

    
por Delbane 21.01.2016 / 03:25

1 resposta

0

A melhor maneira seria usar o systemd; Eu não sei se isso está disponível no centos 6.5, embora.

Sem systemd: Pode ser mais fácil executar um script que inicie e reinicie seu script PHP em vez de um que verifique o script. Algo parecido com isto:

#! /bin/bash
while ! php path/to/script/script_name; do
    :
done

Este script wrapper pode ser iniciado com nohup, se necessário.

Em geral, você deve usar pgrep :

pgrep --full script_name
    
por 21.01.2016 / 03:52