溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

nginx服務(wù)啟動程序的Shell腳本怎么寫

發(fā)布時間:2022-02-16 15:58:20 來源:億速云 閱讀:337 作者:iii 欄目:開發(fā)技術(shù)

這篇文章主要介紹“nginx服務(wù)啟動程序的Shell腳本怎么寫”,在日常操作中,相信很多人在nginx服務(wù)啟動程序的Shell腳本怎么寫問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”nginx服務(wù)啟動程序的Shell腳本怎么寫”的疑惑有所幫助!接下來,請跟著小編一起來學(xué)習(xí)吧!

使用源碼包安裝的Nginx沒辦法使用”service nginx start”或”/etc/init.d/nginx start”進(jìn)行操作和控制,所以寫了以下的服務(wù)控制腳本。

選項有:

  start    啟動

  stop    停止

  reload   重載

  restart    重啟

  status   狀態(tài)

  test    檢查配置文件

腳本一

創(chuàng)建腳本文件并添加執(zhí)行權(quán)限

  touch /etc/init.d/nginx

  chmod +x /etc/init.d/nginx

編寫腳本內(nèi)容

  #!/bin/bash  # chkconfig: - 85 15  # description: Nginx server control script  # processname: nginx  # config file: /usr/local/nginx/conf/nginx.conf  # pid file: /usr/local/nginx/logs/nginx.pid  #  # eastmoney public tools  # version: v1.0.0  # create by XuHoo, 2016-9-14  #  # source function library  . /etc/rc.d/init.d/functions  NGINX_NAME="nginx"  NGINX_PROG="/usr/local/sbin/nginx"  NGINX_PID_FILE="/usr/local/nginx/logs/nginx.pid"  NGINX_CONF_FILE="/usr/local/nginx/conf/nginx.conf"  NGINX_LOCK_FILE="/var/lock/subsys/nginx.lock"  # check current user  [ "$USER" != "root" ] && exit 1

  start() {

  status

  if [[ $? -eq 0 ]]; then  echo $"Nginx (PID $(cat $NGINX_PID_FILE)) already started."  return 1

  fi  echo -n $"Starting $NGINX_NAME: "  daemon $NGINX_PROG -c $NGINX_CONF_FILE  retval=$?

  echo  [ $retval -eq 0 ] && touch $NGINX_LOCK_FILE  return $retval  }

  stop() {

  status

  if [[ $? -eq 1 ]]; then  echo "Nginx server already stopped."  return 1

  fi  echo -n $"Stoping $NGINX_NAME: "  killproc $NGINX_PROG  retval=$?

  echo  [ $retval -eq 0 ] && rm -f $NGINX_LOCK_FILE  return $retval  }

  restart() {

  stop

  sleep 1

  start

  retval=$?

  return $retval  }

  reload() {

  echo -n $"Reloading $NGINX_NAME: "  killproc $NGINX_PROG -HUP

  retval=$?

  echo  return $retval  }

  status() {

  netstat -anpt | grep "/nginx" | awk '{print $6}' &> /dev/null

  if [[ $? -eq 0 ]]; then  if [[ -f $NGINX_LOCK_FILE ]]; then  return 0

  else  return 1

  fi  fi  return 1

  }

  _status() {

  status

  if [[ $? -eq 0 ]]; then  state=`netstat -anpt | grep "/nginx" | awk '{ print $6 }'`

  echo $"Nginx server status is: $state"  else  echo "Nginx server is not running"  fi  }

  test() {

  $NGINX_PROG -t -c $NGINX_CONF_FILE  retval=$?

  return $retval  }

  case "$1" in  start)

  start

  ;;

  stop)

  stop

  ;;

  reload)

  reload

  ;;

  restart)

  restart

  ;;

  status)

  _status

  ;;

  test)

  test  ;;

  *)

  echo "Usage: { start | stop | reload | restart | status | test }"  exit 1

  esac

將腳本添加到系統(tǒng)服務(wù)并設(shè)置開機(jī)啟動

  chkconfig --add nginx

  chkconfig --level 3 nginx on

腳本二

  [root@localhost ~]# cd /usr/local/nginx/conf/  [root@localhost conf]# ls  fastcgi.conf fastcgi_params koi-utf mime.types nginx.conf scgi_params uwsgi_params win-utf

  fastcgi.conf.default fastcgi_params.default koi-win mime.types.default nginx.conf.default scgi_params.default uwsgi_params.default

備份主配置文件

  [root@localhost conf]# cp nginx.conf nginx.conf.origin  [root@localhost conf]# vim nginx.conf  去除#pid logs/nginx.pid;前面#號  [root@localhost conf]# netstat -anpt | grep 80  tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 19108/nginx

  [root@localhost conf]# kill -3 19108  [root@localhost conf]# netstat -anpt | grep 80  [root@localhost conf]# nginx  [root@localhost conf]# netstat -anpt | grep 80  tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 19864/nginx

  [root@localhost conf]# cd ../logs/  [root@localhost logs]# ls  access.log error.log nginx.pid

  [root@localhost logs]# cat nginx.pid  19864

編輯寫服務(wù)腳本

  [root@localhost ~]# vim /etc/init.d/nginx  可以使用的選項有:

  start    啟動

  stop    停止

  reload   重載

  restart    重啟

  status   狀態(tài)

  test    檢查配置文件
  #!/bin/bash  #chkconfig: 2345 99 20  #description:Nginx Server Control Scripts shell  PROG="/usr/local/nginx/sbin/nginx"  PIDF="/usr/local/nginx/logs/nginx.pid"  case "$1" in  start)

  if [ -f $PIDF ];

  then  echo "Nginx正在運(yùn)行…"  else  $PROG  fi  ;;

  stop)

  if [ -f $PIDF ];

  then  kill -3 $(cat $PIDF)

  rm -f $PIDF  else  echo "Nginx正在停止…"  fi  ;;

  restart)

  $0 stop

  $0 start

  ;;

  reload)

  if [ -f $PIDF ];

  then  kill -1 $(cat $PIDF)

  else  echo "Nginx正在停止…重新加載"  fi  ;;

  status)

  if [ -f $PIDF ];

  then  echo "Nginx正在運(yùn)行"  else  echo "Nginx停止"  fi  ;;

  *)

  echo "Usage: $0 (start|stop|restart|reload|status)"  exit 1

  esac  exit 0

腳本文件并添加執(zhí)行權(quán)限

  [root@localhost ~]# chmod +x /etc/init.d/nginx   將腳本添加到系統(tǒng)服務(wù)并設(shè)置開機(jī)啟動

  [root@localhost ~]# chkconfig --add nginx  添加為服務(wù)啟動項

  [root@localhost ~]# chkconfig --list nginx  nginx 0:關(guān)閉 1:關(guān)閉 2:啟用 3:啟用 4:啟用 5:啟用 6:關(guān)閉

  [root@localhost ~]# chkconfig --level 3 nginx on  測試腳本是否能夠執(zhí)行

  [root@localhost ~]# service nginx start  Nginx正在運(yùn)行…

  [root@localhost ~]# service nginx restart  [root@localhost ~]# service nginx stop  [root@localhost ~]# service nginx stop  Nginx正在停止…

  [root@localhost ~]# service nginx start  [root@localhost ~]# service nginx status  Nginx正在運(yùn)行

到此,關(guān)于“nginx服務(wù)啟動程序的Shell腳本怎么寫”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識,請繼續(xù)關(guān)注億速云網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI