PHP-FPM init.d 启动脚本

本脚本 php-fpm 的 init.d 启动脚本,是根据 nginx 在 debian 6 上的启动脚本改写的。使用了 start-stop-daemon 工具。支持 start、stop、restart、reload、force-reload、status、configtest 等操作。

脚本内容如下:


#!/bin/sh ### BEGIN INIT INFO # Provides: php-fpm # Required-Start: $local_fs $remote_fs $network $syslog # Required-Stop: $local_fs $remote_fs $network $syslog # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: starts the php-fpm # Description: starts php-fpm using start-stop-daemon ### END INIT INFO PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin DAEMON=/usr/sbin/php-fpm NAME=php-fpm DESC=php-fpm test -x $DAEMON || exit 0 # Include defaults if available if [ -f /etc/default/php-fpm ] ; then . /etc/default/php-fpm fi set -e . /lib/lsb/init-functions test_config() { if $DAEMON -t $DAEMON_OPTS >/dev/null 2>&1 then return 0 else $DAEMON -t $DAEMON_OPTS return $? fi } case "$1" in start) echo -n "Starting $DESC: " test_config start-stop-daemon --start --quiet --pidfile /var/run/$NAME.pid \ --exec $DAEMON -- $DAEMON_OPTS || true echo "$NAME." ;; stop) echo -n "Stopping $DESC: " start-stop-daemon --stop --quiet --pidfile /var/run/$NAME.pid \ --exec $DAEMON || true echo "$NAME." ;; restart|force-reload) echo -n "Restarting $DESC: " start-stop-daemon --stop --quiet --pidfile \ /var/run/$NAME.pid --exec $DAEMON || true sleep 1 test_config start-stop-daemon --start --quiet --pidfile \ /var/run/$NAME.pid --exec $DAEMON -- $DAEMON_OPTS || true echo "$NAME." ;; reload) echo -n "Reloading $DESC configuration: " test_config start-stop-daemon --stop --signal HUP --quiet --pidfile /var/run/$NAME.pid \ --exec $DAEMON || true echo "$NAME." ;; configtest) echo -n "Testing $DESC configuration: " if test_config then echo "$NAME." else exit $? fi ;; status) status_of_proc -p /var/run/$NAME.pid "$DAEMON" php-fpm && exit 0 || exit $? ;; *) echo "Usage: $NAME {start|stop|restart|reload|force-reload|status|configtest}" >&2 exit 1 ;; esac exit 0

该脚本使用 php-fpm 默认的配置文件。如果你不知道 php-fpm 的默认配置文件是哪个,你可以运行 "php-fpm -t" 来查看。

可以通过修改 /etc/defaults/php-fpm 文件来指定 php-fpm 的命令行参数。比如,如果使用非默认配置文件,可在 /etc/defaults/php-fpm 中(如果没有则手动创建)加入:

DAEMON_OPTS = -y /your/config/file/dir

你也可以指定其他参数,只要在 DAEMON_OPTS 后追加即可。

另外,本脚本依赖 pidfile,所以您需要在 php-fpm 的配置文件中设置 (在 [global] 段下):

pid = /var/run/php-fpm.pid

如果你指定的 pid 路径与此不一致,请修改本启动脚本相应的内容。

如果有任何问题,欢迎讨论交流。

Creative Commons License Except where otherwise noted, content on this site is licensed under a Creative Commons Attribution 4.0 International license .