当前位置:首页 > PHP教程 > php高级应用 > 列表

php-fpm服务启动脚本的方法

发布:smiling 来源: PHP粉丝网  添加日期:2021-09-15 10:23:36 浏览: 评论:0 

这篇文章主要介绍了php-fpm服务启动脚本的方法,非常不错,具有参考借鉴价值,需要的朋友可以参考下,这个我自己在用,没问题,有三个path需要自己酌情修改。

先创建自启动文件:/etc/init.d/php-fpm

内容如下:

  1. #! /bin/sh 
  2. ### BEGIN INIT INFO 
  3. # Provides:     php-fpm 
  4. # Required-Start:  $remote_fs $network 
  5. # Required-Stop:   $remote_fs $network 
  6. # Default-Start:   2 3 4 5 
  7. # Default-Stop:   0 1 6 
  8. # Short-Description: starts php-fpm 
  9. # Description:    starts the PHP FastCGI Process Manager daemon 
  10. ### END INIT INFO 
  11. prefix=/usr/local/php 
  12. exec_prefix=${prefix} 
  13. php_fpm_BIN=${exec_prefix}/sbin/php-fpm 
  14. php_fpm_CONF=${prefix}/etc/php-fpm.conf 
  15. php_fpm_PID=${prefix}/var/run/php-fpm.pid 
  16. php_opts="--fpm-config $php_fpm_CONF --pid $php_fpm_PID" 
  17. wait_for_pid () { 
  18.   try=0 
  19.   while test $try -lt 35 ; do 
  20.     case "$1" in 
  21.       'created'
  22.       if [ -f "$2" ] ; then 
  23.         try='' 
  24.         break 
  25.       fi 
  26.       ;; 
  27.       'removed'
  28.       if [ ! -f "$2" ] ; then 
  29.         try='' 
  30.         break 
  31.       fi 
  32.       ;; 
  33.     esac 
  34.     echo -n . 
  35.     try=`expr $try + 1` 
  36.     sleep 1 
  37.   done 
  38. case "$1" in 
  39.   start) 
  40.     echo -n "Starting php-fpm " 
  41.     $php_fpm_BIN --daemonize $php_opts 
  42.     if [ "$?" != 0 ] ; then 
  43.       echo " failed" 
  44.       exit 1 
  45.     fi 
  46.     wait_for_pid created $php_fpm_PID 
  47.     if [ -n "$try" ] ; then 
  48.       echo " failed" 
  49.       exit 1 
  50.     else 
  51.       echo " done" 
  52.     fi 
  53.   ;; 
  54.   stop) 
  55.     echo -n "Gracefully shutting down php-fpm " 
  56.     if [ ! -r $php_fpm_PID ] ; then 
  57.       echo "warning, no pid file found - php-fpm is not running ?" 
  58.       exit 1 
  59.     fi 
  60.     kill -QUIT `cat $php_fpm_PID
  61.     wait_for_pid removed $php_fpm_PID 
  62.     if [ -n "$try" ] ; then 
  63.       echo " failed. Use force-quit" 
  64.       exit 1 
  65.     else 
  66.       echo " done" 
  67.     fi 
  68.   ;; 
  69.   status) 
  70.     if [ ! -r $php_fpm_PID ] ; then 
  71.       echo "php-fpm is stopped" 
  72.       exit 0 
  73.     fi 
  74.     PID=`cat $php_fpm_PID
  75.     if ps -p $PID | grep -q $PID; then 
  76.       echo "php-fpm (pid $PID) is running..." 
  77.     else 
  78.       echo "php-fpm dead but pid file exists" 
  79.     fi 
  80.   ;; 
  81.   force-quit) 
  82.     echo -n "Terminating php-fpm " 
  83.     if [ ! -r $php_fpm_PID ] ; then 
  84.       echo "warning, no pid file found - php-fpm is not running ?" 
  85.       exit 1 
  86.     fi 
  87.     kill -TERM `cat $php_fpm_PID
  88.     wait_for_pid removed $php_fpm_PID 
  89.     if [ -n "$try" ] ; then 
  90.       echo " failed" 
  91.       exit 1 
  92.     else 
  93.       echo " done" 
  94.     fi 
  95.   ;; 
  96.   restart) 
  97.     $0 stop 
  98.     $0 start 
  99.   ;; 
  100.   reload) 
  101.     echo -n "Reload service php-fpm " 
  102.     if [ ! -r $php_fpm_PID ] ; then 
  103.       echo "warning, no pid file found - php-fpm is not running ?" 
  104.       exit 1 
  105.     fi 
  106.     kill -USR2 `cat $php_fpm_PID
  107.     echo " done" 
  108.   ;; 
  109.   *) 
  110.     echo "Usage: $0 {start|stop|force-quit|restart|reload|status}" 
  111.     exit 1 
  112.   ;; 
  113. esac 

配置php-fpm服务

  1. # 设置权限 
  2. chmod 755 /etc/init.d/php-fpm 
  3. # php-fpm加入服务 
  4. chkconfig --add php-fpm 
  5. # php-fpm 234级别下设置为启动 
  6. chkconfig php-fpm on 
  7. # 查看php-fpm服务当前配置 
  8. chkconfig --list php-fpm 
  9. php-fpm     0:off  1:off  2:on  3:on  4:on  5:on  6:off 

php-fpm使用方法

  1. # 启动 
  2. service php-fpm start 
  3. # 关闭 
  4. service php-fpm stop 
  5. # 重启 
  6. service php-fpm restart 
  7. # 重载 
  8. service php-fpm reload 
  9. #检查配置文件 
  10. service php-fpm configtest 

脚本说明

  1. # Source function library.  
  2. . /etc/rc.d/init.d/functions  
  3. # Source networking configuration.  
  4. . /etc/sysconfig/network 

以上量行代码有人会疑问他们到底是做什么的,'.'是source类似于程序中的include和require,将functions里面的方法全部倒入到这边,这边程序便可以使用,例如这边用到的daemon、status。第二行的network实际上就几行,如下

NETWORKING=yes

HOSTNAME=E10162

将他们作为变量赋值,判断网卡是否启动,如果你的nginx不走网卡,其实网络这段可以去掉.

/etc/init.d/php-fpm

Tags: php-fpm php启动脚本

分享到: