告别Shell命令恐惧症,你需要的是这个『启动、停止Shell』脚本,下面是个php-fpm的启停脚本

#!/bin/bash

SHELL_DIR=$(cd "$(dirname "$0")";pwd)
opt="${@:2}"
echo "shell dir: $SHELL_DIR, arguments:$opt"

psid=

checkpid() {
   psid=`ps -ef | grep 'php-fpm' | grep -v 'grep' | grep -v 'sh' | awk '{print $2}' | tr '\n' ' '`
   echo "psid: $psid"
}

start() {
     echo "starting..."
     checkpid
      if [ ${#psid} -ne 0 ]; then
         echo "================================"
         echo "warn: php-fpm already started! (pid=$psid)"
         echo "================================"
      else
         echo "============ Start ============="
         echo "starting php-fpm ..."
         php-fpm $opt
         checkpid
         if [ ${#psid} -ne 0 ]; then
            echo "php-fpm started successfully!"
         else
            echo "php-fpm started failed!"
         fi
     fi
}

stop() {
   checkpid
    if [ ${#psid} -ne 0 ]; then
       echo "killing pid -> "$psid
       kill -9 $psid
         checkpid
         if [ ${#psid} -ne 0 ]; then
            echo "php-fpm stopped failed!"
         else
            echo "php-fpm stopped successfully!"
         fi
   else
      echo "================================"
      echo "warn: php-fpm is not running!"
      echo "================================"
   fi

}

status() {
   checkpid
   if [ ${#psid} -ne 0 ];  then
      echo "php-fpm is running!"
   else
      echo "php-fpm is not running!"
   fi
}

echo "running $1 command as $USER"

case "$1" in
   'start')
      start
      ;;
   'stop')
     stop
     ;;
   'restart')
     stop
     start
     ;;
   'status')
     status
     ;;
  *)
     echo "Usage: $0 {start|stop|restart|status}"
     exit 1
esac
exit 0
打赏
通用的程序启动/停止Shell脚本

发表评论