Você pode usar initctl :
/sbin/initctl restart php5-fpm
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?
Você pode usar initctl :
/sbin/initctl restart php5-fpm
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
Hoje, restart é um link simbólico. Amanhã pode se tornar um script fazendo outras coisas antes de chamar initctl .
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