dengwen3 发表于 2018-8-26 11:31:36

用shell编写nginx脚本的启动,关闭,重加载

#!/bin/bash               ----默认执行shell方式  
#chkconfig: 2345 10 80      ----加入到开机执行的方式
  
path="/usr/local/nginx/sbin/nginx"      ----源代码安装nginx之后的启动路径
  
name="nginxd"
  
test=0
  
log=/tmp/nginxd.log                ----nginx的日志
  
DATE=`date "+%F%H:%M:%S"`      ----获得系统时间命令
  

  

  

  
#判断nginx是否已经安装或者判断源码安装之后启动的路径是否存在。
  
if [ ! -x $path ];then
  echo-n "${path} not installed!"
  exit 10
  
fi
  

  
#启动选项,对执行nginx进行启动,启动成功或者失败都会输出提醒。
  
start(){
  echo -n " starting $name ;"
  $path -t
  test=$?
  if [ $test -eq 0 ];then
  touch /tmp/nginx.pid
  $path
  echo "$DATE and $path is starting" >> $log
  
else
  echo "please check you config"
  exit 20
  fi
  
}
  

  

  
#停止nginx服务,并把输出的信息重定向到指定的日志文件。
  
stop(){
  echo -n "stopping $name ;"
  ps -ef |grep nginx | awk '{print $2}' | xargs kill -9
  test=0
  if [ $test -eq 0 ] ;then
  rm -rf /tmp/nginx.pid
  echo "$DATE and $path is stop" >> $log
  fi
  
}
  

  

  
#重加载选项,将服务重新加载并识别服务是否正常运行。
  
reload(){
  echo -n "reloading $name ;"
  
#ps -ef |grep nginx | awk '{print $2}' | xargs kill -9
  $path -t
  test=$?
  if [ $test -eq 0 ];then
  touch /tmp/reload.pid
  echo "$DATE and $path is reloading " >> $log
  rm -rf /tmp/reload.pid
  
else
  echo "please check you config"
  exit 20
  fi
  
}
  

  

  
#整个脚本使用case方式来进行调用,当执行该脚本时会输出相关信息提醒。
  
case "$1" in
  start) start;;
  stop) stop;;
  reload) reload;;
  *) echo "/usr/local/nginx/sbin/nginx start|stop|reload !";;
  
esac
  

  

  

  

  
######---退出shell之后,执行以下操作---######
  

  
1.对文件加权限
  
chmod +x nginxd
  

  
2.对文件执行
  
bash nginxd


页: [1]
查看完整版本: 用shell编写nginx脚本的启动,关闭,重加载