A versão atual do Ubuntu está usando as configurações de up-start para executar serviços. Mais informações sobre isso podem ser encontradas aqui .
Todos os scripts de início estão localizados no diretório /etc/init
. Não confunda com scripts de init antigos no diretório /etc/init.d
.
Como @Rhim declarou em sua resposta, /var/run
é um sistema de arquivos montado temporariamente, que é recriado após cada reinicialização, assim as alterações não são persistidas nele. Portanto, para ter um diretório personalizado para arquivos de soquete, você terá que criá-lo sempre. O melhor lugar para adicionar tal funcionalidade é uma configuração para o PHP FPM localizada em: /etc/init/php5-fpm.conf
.
Veja a versão modificada desta configuração:
# php5-fpm - The PHP FastCGI Process Manager
description "The PHP FastCGI Process Manager"
author "Ondřej Surý <[email protected]>"
start on runlevel [2345]
stop on runlevel [016]
# Precise upstart does not support reload signal, and thus rejects the
# job. We'd rather start the daemon, instead of forcing users to
# reboot https://bugs.launchpad.net/ubuntu/+source/php5/+bug/1272788
#
# reload signal USR2
pre-start script
mkdir -p /var/run/php-fpm
/usr/lib/php5/php5-fpm-checkconf
end script
respawn
exec /usr/sbin/php5-fpm --nodaemonize --fpm-config /etc/php5/fpm/php-fpm.conf
pre-start
stanza já foi usado para verificar o arquivo de configuração do PHP FPM, então eu o convertei em uma seção de script e adicionei meu próprio comando para criar o direcotry para arquivos de soquete antes de chamar o checkconf
.
Com este script, ele deve funcionar bem. Para controlar o estado do serviço, use o comando service
da seguinte forma: service php5-fpm start
, service php5-fpm restart
etc.
Espero que ajude alguém. Felicidades!