Como reiniciar o PHP-FPM do cron?

1

Estou tentando reiniciar o PHP5-FPM periodicamente usando o Cron, mas não estou tendo sorte.

Posso reiniciar manualmente sem problemas, usando service php5-fpm restart ou /usr/sbin/service php5-fpm restart

No entanto, quando eu uso o mesmo comando, incluindo o uso do caminho completo para /usr/sbin/service , nada acontece. O cronjob é executado (como eu vejo no syslog), mas o PHP5-FPM não reinicia.

A linha relevante do crontab do meu usuário root é a seguinte:

* * * * * /usr/sbin/service php5-fpm restart

Confirmei com which service que o caminho para o serviço é de fato /usr/sbin/service .

Por que isso não está funcionando?

    
por Mateo 09.04.2014 / 11:33

3 respostas

1

Você pode usar initctl :

/sbin/initctl  restart php5-fpm
    
por 08.09.2015 / 12:44
0

Tarde para a resposta da festa

cron executa scripts em um ambiente muito leve.

service , de fato, verifica se o serviço é um init upstart ou um script /etc/init.d e, nesse caso, executará o

[ /sbin/ ] restart

comando (um link simbólico para initctl ) mas falha porque o caminho /sbin não faz parte do PATH quando cron é executado e restart é dado sem o seu caminho absoluto.

Você pode realmente definir o PATH para cron no início do crontab , mas é melhor definir diretamente o comando em necessidade como

m h * * * /sbin/restart php5-fpm

Nota
use o symlink / sbin / restart em vez de chamar diretamente initctl . Os scripts / comandos estão aqui por uma razão, basicamente para ajudar o administrador com comandos fazendo algo específico, uma sintaxe simples e tendo um nome fácil de lembrar.

Hoje, restart é um link simbólico. Amanhã pode se tornar um script fazendo outras coisas antes de chamar initctl .

    
por 21.12.2015 / 15:43
-1

A única solução que posso fazer é comentar as seguintes linhas no arquivo /etc/init.d/php5-fpm:

# Don't run if we are running upstart
#if init_is_upstart; then
#    exit 1
#fi
    
por 04.06.2015 / 22:17

Tags