请选择 进入手机版 | 继续访问电脑版

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

[复制链接]
建宸网络 发表于 2020-8-2 20:14:16 来自手机 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
这个我自己在用,没问题,有三个path需要自己酌情修改。

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

内容如下:


#! /bin/sh

### BEGIN INIT INFO

# Provides:     php-fpm

# Required-Start:  $remote_fs $network

# Required-Stop:   $remote_fs $network

# Default-Start:   2 3 4 5

# Default-Stop:   0 1 6

# Short-Description: starts php-fpm

# Description:    starts the PHP FastCGI Process Manager daemon

### END INIT INFO

prefix=/usr/local/php

exec_prefix=${prefix}

php_fpm_BIN=${exec_prefix}/sbin/php-fpm

php_fpm_CONF=${prefix}/etc/php-fpm.conf

php_fpm_PID=${prefix}/var/run/php-fpm.pid

php_opts="--fpm-config $php_fpm_CONF --pid $php_fpm_PID"

wait_for_pid () {

  try=0

  while test $try -lt 35 ; do

    case "$1" in

      'created')

      if [ -f "$2" ] ; then

        try=''

        break

      fi

      ;;

      'removed')

      if [ ! -f "$2" ] ; then

        try=''

        break

      fi

      ;;

    esac

    echo -n .

    try=`expr $try + 1`

    sleep 1

  done

}

case "$1" in

  start)

    echo -n "Starting php-fpm "

    $php_fpm_BIN --daemonize $php_opts

    if [ "$?" != 0 ] ; then

      echo " failed"

      exit 1

    fi

    wait_for_pid created $php_fpm_PID

    if [ -n "$try" ] ; then

      echo " failed"

      exit 1

    else

      echo " done"

    fi

  ;;

  stop)

    echo -n "Gracefully shutting down php-fpm "

    if [ ! -r $php_fpm_PID ] ; then

      echo "warning, no pid file found - php-fpm is not running ?"

      exit 1

    fi

    kill -QUIT `cat $php_fpm_PID`

    wait_for_pid removed $php_fpm_PID

    if [ -n "$try" ] ; then

      echo " failed. Use force-quit"

      exit 1

    else

      echo " done"

    fi

  ;;

  status)

    if [ ! -r $php_fpm_PID ] ; then

      echo "php-fpm is stopped"

      exit 0

    fi

    PID=`cat $php_fpm_PID`

    if ps -p $PID | grep -q $PID; then

      echo "php-fpm (pid $PID) is running..."

    else

      echo "php-fpm dead but pid file exists"

    fi

  ;;

  force-quit)

    echo -n "Terminating php-fpm "

    if [ ! -r $php_fpm_PID ] ; then

      echo "warning, no pid file found - php-fpm is not running ?"

      exit 1

    fi

    kill -TERM `cat $php_fpm_PID`

    wait_for_pid removed $php_fpm_PID

    if [ -n "$try" ] ; then

      echo " failed"

      exit 1

    else

      echo " done"

    fi

  ;;

  restart)

    $0 stop

    $0 start

  ;;

  reload)

    echo -n "Reload service php-fpm "

    if [ ! -r $php_fpm_PID ] ; then

      echo "warning, no pid file found - php-fpm is not running ?"

      exit 1

    fi

    kill -USR2 `cat $php_fpm_PID`

    echo " done"

  ;;

  *)

    echo "Usage: $0 {start|stop|force-quit|restart|reload|status}"

    exit 1

  ;;

esac

配置php-fpm服务


# 设置权限

chmod 755 /etc/init.d/php-fpm

# php-fpm加入服务

chkconfig --add php-fpm

# php-fpm 234级别下设置为启动

chkconfig php-fpm on

# 查看php-fpm服务当前配置

chkconfig --list php-fpm

php-fpm     0ff  1ff  2n  3n  4n  5n  6ff

php-fpm使用方法



# 启动

service php-fpm start

# 关闭

service php-fpm stop

# 重启

service php-fpm restart

# 重载

service php-fpm reload

#检查配置文件

service php-fpm configtest

脚本说明



# Source function library.

. /etc/rc.d/init.d/functions

# Source networking configuration.

. /etc/sysconfig/network

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



NETWORKING=yes

HOSTNAME=E10162

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

本文转载于php中文网:https://www.php.cn/php-weizijiaocheng-457023.html
2020080116424150064.jpg
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 最佳新人

    注册账号后积极发帖的会员
  • 活跃会员

    经常参与各类话题的讨论,发帖内容较有主见
  • 热心会员

    经常帮助其他会员答疑
  • 推广达人

    积极宣传本站,为本站带来更多注册会员
  • 宣传达人

    积极宣传本站,为本站带来更多的用户访问量
  • 灌水之王

    经常在论坛发帖,且发帖量较大
  • 突出贡献

    长期对论坛的繁荣而不断努力,或多次提出建设性意见
  • 优秀版主

    活跃且尽责职守的版主
  • 荣誉管理

    曾经为论坛做出突出贡献目前已离职的版主
  • 论坛元老

    为论坛做出突出贡献的会员

关注0

粉丝0

帖子437

发布主题

专注素材教程免费分享
全国免费热线电话

18768367769

周一至周日9:00-23:00

反馈建议

27428564@qq.com 在线QQ咨询

扫描二维码关注我们

Powered by Discuz! X3.4© 2001-2013 Comsenz Inc.( 蜀ICP备2021001884号-1 )