En los sistemas systemd, es posible que deba configurar esto a través de systemd en lugar de scripts de inicio V del sistema
Los pasos a continuación están probados y funcionan en Ubuntu 16.04 LTS. Y este es el culpable de los scripts de inicio redirigidos:
/lib/lsb/init-functions.d/40-systemd
/etc/php/7.0/fpm/pool.d/www.conf
y configure root como usuario/grupo como root
; Unix user/group of processes ; Note: The user is mandatory. If the group is not set, the default user's group ; will be used. user = root group = root
/lib/systemd/system/php7.0-fpm.service
y agregue -R al ExecStart
variable para permitir que el servicio se ejecute como root
ExecStart=/usr/sbin/php-fpm7.0 --nodaemonize --fpm-config /etc/php/7.0/fpm/php-fpm.conf -R
$ systemctl daemon-reload
$ systemctl start php7.0-fpm
$ ps auwx | grep php root 32061 0.0 0.0 221680 26084 ? Ss 16:59 0:00 php-fpm: master process (/etc/php/7.0/fpm/php-fpm.conf) root 32063 0.0 0.0 221680 4992 ? S 16:59 0:00 php-fpm: pool www root 32064 0.0 0.0 221680 4992 ? S 16:59 0:00 php-fpm: pool www
Finalmente encontré una solución. Resultó que Ubuntu estaba usando systemd
para iniciar y reiniciar PHP-FPM y por lo tanto ignoraba el init.d
archivos.
Si experimenta problemas con los ajustes a init.d
los archivos se ignoran y está en Ubuntu 15.04 o posterior, es muy probable que el servicio tenga un systemd
archivo de servicio también.
Entonces, la solución para mi problema:mi sistema tiene un archivo llamado /lib/systemd/system/php7.0-fpm.service
, que es utilizado por systemd
. Con el comando cat /lib/systemd/system/php7.0-fpm.service
puede ver el contenido del archivo de servicio. Reemplazas php7.0-fpm.service
con el nombre de su archivo de servicio. El archivo de servicio de PHP7.0-FPM se ve así:
[Unit]
Description=The PHP 7.0 FastCGI Process Manager
Documentation=man:php-fpm7.0(8)
After=network.target
[Service]
Type=notify
PIDFile=/run/php/php7.0-fpm.pid
ExecStart=/usr/sbin/php-fpm7.0 --nodaemonize --fpm-config /etc/php/7.0/fpm/php-fpm.conf
ExecReload=/bin/kill -USR2 $MAINPID
[Install]
WantedBy=multi-user.target
En mi caso necesitaba ajustar el ExecStart
regla. No tenemos que editar este archivo, porque systemd ofrece una forma de anular reglas específicas. El comando sudo systemctl edit php7.0-fpm.service
abrirá un editor donde puede ingresar esas reglas. Simplemente ingrese la(s) sección(es) de la(s) regla(s) que desea ajustar y guarde el archivo. En mi caso se ve así:
[Service]
ExecStart=
ExecStart=/usr/sbin/php-fpm7.0 --allow-to-run-as-root --nodaemonize --fpm-config /etc/php/7.0/fpm/php-fpm.conf
Asegúrese de restablecer primero la regla que desea editar; de lo contrario, se ejecutarán ambas reglas. También asegúrese de ejecutar sudo systemctl daemon-reload
después de guardar este archivo. En mi caso, ahora se permite ejecutar grupos como root en Ubuntu 16.04.