注册 登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

Copper peas ' Bolg

Keep On Moving...This Is My Life...

 
 
 

日志

 
 

【原】php-fpm启动shell 解析  

2011-04-07 23:22:33|  分类: linux |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

下面shell是php-fpm自带的,我作了解析,适合初级shell学习者

 

#! /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}

#组合路径定义pid路径
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"

#定义函数
wait_for_pid () {
 try=0

 while test $try -lt 35 ; do

  case "$1" in
   'created')
   #如果$2变量的值存在
   if [ -f "$2" ] ; then
    try=''
    #跳出循环
    break
   fi
   ;;

   'removed')
   #如果$2变量的值不存在
   if [ ! -f "$2" ] ; then
    try=''
    #跳出循环
    break
   fi
   ;;
  esac
                #-n 省略最后的换行符号
  echo -n .
  #如果上面判断没有,循环加1,expr为格式化字符串为数值
  try=`expr $try + 1`
  #延迟1毫秒
  sleep 1

 done

}

#获取第一参数
case "$1" in
 start)
         #输出
  echo -n "Starting php-fpm "
                #启动fpm
  $php_fpm_BIN $php_opts
                #判断启动命令是否成功,如果成功,返回是0
  if [ "$?" != 0 ] ; then
   echo " failed"
   exit 1
  fi
                #检查fpm是否成功,判断pid是否存在
  wait_for_pid created $php_fpm_PID
                #判断变量$try是否有值
  if [ -n "$try" ] ; then
   echo " failed"
   exit 1
  else
   echo " done"
  fi
 ;;

 stop)
  echo -n "Gracefully shutting down php-fpm "
                #如果pid不可读
  if [ ! -r $php_fpm_PID ] ; then
   echo "warning, no pid file found - php-fpm is not running ?"
   exit 1
  fi
                #杀掉fpm的pdi,但内存存储,详情看kill -QUIT #cat $php_fpm_PID 获取pid
  kill -QUIT `cat $php_fpm_PID`

  wait_for_pid removed $php_fpm_PID

  if [ -n "$try" ] ; then
   echo " failed. Use force-exit"
   exit 1
  else
   echo " done"
  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
                #cat $php_fpm_PID 获取pid
  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 这个shell的执行名称
  $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
                #cat $php_fpm_PID 获取pid
  kill -USR2 `cat $php_fpm_PID`

  echo " done"
 ;;

 *)
  echo "Usage: $0 {start|stop|force-quit|restart|reload}"
  exit 1
 ;;

esac


#  $0   这个程式的执行名字      
#  $n   这个程式的第n个参数值,n=1..9      
#  $*   这个程式的所有参数      
#  $#   这个程式的参数个数      
#  $$   这个程式的PID      
#  $!   执行上一个背景指令的PID      
#  $?   执行上一个指令的返回值

if[]的参数使用,while,case 具体可以查看shell脚本学习指南 pdf 140页

  评论这张
 
阅读(244)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018