1. 程式人生 > >模擬Nginx服務啟動停止重新載入指令碼

模擬Nginx服務啟動停止重新載入指令碼

Nginx服務啟動停止重新載入指令碼

要求:

已知Nginx管理命令為:

啟動:/application/nginx/sbin/nginx

停止:/application/nginx/sbin/nginx -s stop

重新載入:/application/nginx/sbin/nginx -s reload

請用case指令碼模擬Nginx啟動關閉

/etc/init.d/nginx{start|stop|restart|reload}

並實現可通過chkonfig管理

 

指令碼實現

指令碼

#***********************

#nginx 啟動指令碼

#2018-11-29

#***********************

#!/bin/bash

#呼叫系統函式及自定義變數

[ -f /etc/init.d/functions ]&& . /etc/init.d/functions

Pidfile=/application/nginx/logs/nginx.pid

#共用函式

publics(){

  RETVAL=$?

if [ $RETVAL -eq 0 ];then

    action "Nginx is $1" /bin/true

else

   actio "Nginx is $1" /bin/false

fi

}

#啟動函式start

start(){

  if [ -f $Pidfile ];then

    echo "Nginx is running"

  else

    /application/nginx/sbin/nginx

    publics Started

  fi

  return $RETVAL

}

#關閉函式stop

stop(){

   if [ ! -f $Pidfile ];then

     echo "Nginx is not runing"

   else

     /application/nginx/sbin/nginx -s stop

    publics Stopped

   fi

   return $RETVAL

}

#重新載入函式reload

reload(){

   if [ ! -f $Pidfile ];then

     echo "Can't open $Pidfile ,no such file directory"

   else

     /application/nginx/sbin/nginx -s reload

     publics Reload

   fi

  return $RETVAL

}

#case 語句使用選擇

case "$1" in

    start)

         start

         RETVAL=$?

        ;;

    stop)

        stop

        RETVAL=$?

        ;;

  reload)

         reload

         RETVAL=$?

        ;;

restart)

         stop

         sleep 2

         start

        RETVAL=$?

        ;;

       *)

        echo "USAGE:$0 {satrt|stop|restart|reload}"

        exit  1

        ;;

esac