service服務(wù)腳本(nginx)

Linux服務(wù)是可以通過service命令進行控制的,這能使我們在給nginx主進程發(fā)送信號以及查看操作nginx服務(wù)更加得心應(yīng)手。在CentOS系統(tǒng)中,Service命令實際是調(diào)用/etc/init.d目錄下的shell腳本,也就是說,如下兩行命令其實等價的

#直接運行腳本
/etc/init.d/network restart

#通過service命令執(zhí)行腳本
service network restart

在上面的命令中,network是shell腳本的文件名,restart是傳遞給腳本的參數(shù)。因此將nginx添加到系統(tǒng)服務(wù)中,只需要在/etc/init.d中編寫一個文件名為nginx的shell腳本即可。

接下來執(zhí)行touch nginx創(chuàng)建一個腳本文件,使用vim /etc/init.d/nginx命令編寫一個shell腳本實現(xiàn)nginx服務(wù)管理,提供start stop reload restart status 5個參數(shù),具體的腳本代碼如下:

#! /bin/bash

#chkconfig:35 85 15

DAEMON=/usr/local/nginx/nginx
PID=/usr/local/nginx/nginx.pid

case "$1" in
  start)
      echo "Starting nginx daemon..."
      $DAEMON && echo "SUCCESS"  #開啟nginx
  ;;
  stop)
      echo "Stopping nginx daemon..."
      $DAEMON -s quit && echo "SUCCESS"  #從容的停止nginx
  ;;
  reload)
      echo "Reloading nginx daemon..."
      $DAEMON -s reload && echo "SUCCESS"  #平滑重啟nginx
  ;;
  restart)
      echo "Restarting nginx daemon..."
      $DAEMON -s quit                            #從容的停止nginx
      $DAEMON && echo "SUCCESS"                  #開啟nginx
  ;;
  status)
      if [ ! -f "$PID" ]; then                  #因為nginx啟動后會生成進程文件nginx.pid,這里通過判斷進程文件是否存在,判斷nginx是否啟動
         echo "Nginx is not running..."
      else
         echo "Nginx is running..."
      fi
  ;;
  *)
      echo "Usage:service nginx (start|stop|restart|reload|status)"
      exit 2
  ;;
esac

代碼解釋:

#! /bin.bash:通常寫在shell腳本的開頭,需要使用特殊表示符號#!定義解釋此腳本的shell路徑。以上代碼的意思是這個腳本將使用bash環(huán)境執(zhí)行。
case語句:case語句通常用于多重分支語句匹配的情況,具體語法如下:

case $變量名 in
     模式1)
       命令序列1
     ;;
     模式2)
       命令序列2
     ;;
     *)
       默認執(zhí)行的命令序列
     ;;
esac

case語句必須以case開始 in結(jié)尾,中間的變量表示用戶輸入的字符,每個模式必須以右括號")"結(jié)束,雙分號";;"結(jié)束命令序列,且匹配模式中可以使用方括號表示一個連續(xù)的范圍,如[0-9],使用樹杠符號“|”表示“或”;最后的“*)”是默認模式,當(dāng)使用前面的各種模式均無法匹配該變量時,將執(zhí)行“*)”后的命令序列,最后case語句必須以esac結(jié)束。
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
禁止轉(zhuǎn)載,如需轉(zhuǎn)載請通過簡信或評論聯(lián)系作者。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容