分享一个php的启动关闭脚本(原)

自己简单写的一个php服务的启动脚本和大家分享

思路(实现的原理):

1:function模块+case语句多分支判断

2:通过添加# chkconfig: 2345 43 89注释实现开机自启动(前提是把脚本放入/etc/init.d/目录下 然后chmod给可执行权限,然后chkconfig --add phpd(脚本名称))

3:每次命令执行是否成功用$?是否为0来给予反馈

#!/bin/bash
# php-fpm       Start/Stop php-fpm
#
# chkconfig: 2345 43 89
#author andy
#date 20161218
#function php-fpm manager
#email fei1989118@126.com
#version 1.0
#check service status
#usage
. /etc/init.d/functions
#define var
check=`netstat -lnutp|grep php-fpm|wc -l`
function usage(){

 echo "usage:$0 {start|stop|restart|status}"
 exit
}
function start(){
 
if [ "$1" = "start" -a $check -ne 0 ];then
 action "php is already started!" /bin/false
 exit
elif [ "$1" = "start" -a $check -eq 0 ];then
 sleep 1
 /usr/local/sbin/php-fpm
  if [ $? = 0 ];then
  action "php start successfully!" /bin/true
  else 
  action "php start failed!" /bin/false
  exit
  fi
fi
}
function stop(){
if [ "$1" = "stop" -a $check -eq 0 ];then
action "php is not running!" /bin/false
 exit
elif [ "$1" = "stop" -a $check -ne 0 ];then
   killall php-fpm
  sleep 1
  if [ $? = 0 ];then
   action "php stoped successfully!" /bin/true
  else
   action "php stoped failed!" /bin/false
  exit
  fi
fi
}
function restart(){
if [ "$1" = "restart" -a $check -eq 0 ];then
  action "php is not running!" /bin/false
  sleep 1
  /usr/local/sbin/php-fpm
  if [ $? = 0 ];then
  action "php start successfully!" /bin/true
  else
  action "php start failed!" /bin/false
  exit
  fi 

elif [ "$1" = "restart" -a $check -ne 0 ];then
   killall php-fpm
  if [ $? = 0 ];then
   action "php stoped successfully!" /bin/true
  else
   action "php stoped failed!" /bin/false
  fi
  sleep 1
  /usr/local/sbin/php-fpm
  if [ $? = 0 ];then
   action "php start successfully!" /bin/true
  else
   action "php start failed!" /bin/false
  exit
  fi
fi

}
function status(){
if [ "$1" = "status" -a $check -eq 0 ];then
  echo "php is not running!"
 exit
elif [ "$1" = "status" -a $check -ne 0 ];then
  echo "php is running"
  exit
fi
}

case "$1" in
    start) start $1
    ;;
    stop) stop $1
    ;;
    restart) restart $1
    ;;
    status) status $1
    ;;
    *) usage $1
esac

如果有不对的地方请多多指正

posted @ 2016-12-25 11:47  小脚本  阅读(1433)  评论(0编辑  收藏  举报