Ubuntu Nginx 開機自啟動

火星人 @ 2014-03-12 , reply:0


  

update-rc.d命令,是用來自動的升級System V類型初始化腳本,簡單的講就是,哪些東西是你想要系統在引導初始化的時候運行的,哪些是希望在關機或重啟時停止的,可以用它來幫你設置。

首先 我們需要在 /etc/init.d/目錄下創建一個nginx的腳本文件,命令 vi nginx 輸入以下內容

#! /bin/sh
# Author: rui ding
# Modified: Geoffrey Grosenbach http://www.linuxidc.com
# Modified: Clement NEDELCU
# Reproduced with express authorization from its contributors
set -e
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DESC="nginx daemon"
NAME=nginx
DAEMON=/usr/local/nginx/sbin/$NAME
SCRIPTNAME=/etc/init.d/$NAME


# If the daemon file is not found, terminate the script.
test -x $DAEMON || exit 0

d_start() {
  $DAEMON || echo -n " already running"
}

d_stop() {
  $DAEMON –s quit || echo -n " not running"
}

d_reload() {
  $DAEMON –s reload || echo -n " could not reload"
}

case "$1" in
  start)
    echo -n "Starting $DESC: $NAME"
    d_start
    echo "."
  ;;
  stop)
    echo -n "Stopping $DESC: $NAME"
    d_stop
    echo "."
  ;;
  reload)
    echo -n "Reloading $DESC configuration..."
    d_reload
    echo "reloaded."
  ;;
  restart)
  echo -n "Restarting $DESC: $NAME"
  d_stop
# Sleep for two seconds before starting again, this should give the
# Nginx daemon some time to perform a graceful stop.
  sleep 2
  d_start
  echo "."
  ;;
  *)
  echo "Usage: $SCRIPTNAME {start|stop|restart|reload}" >&2
  exit 3
  ;;
esac
exit 0

然後輸入 以下命令

[root@example.com ~]# update-rc.d –f nginx defaults

好了 從新啟動看看NGINX啟動了沒

如果要取消開機啟動可以這樣

update-rc.d -f nginx remove

補充資料:

/etc/init.d/里存放了所有的啟動腳本,我們平時可以通過/etc/init.d/腳本名 啟動模式 來啟動某個應用。 例如輸入命令“/etc/init.d/smb start”來啟動smb服務。 如果是在RedHat系統下,還可以通過service smb start來啟動某個服務。

儘管/etc/init.d目錄中的腳本可以啟動和停止各個服務,但在系統引導時,init並不是直接在/etc/init.d目錄下找各個服務的啟動腳本,而是在/etc/rc.d/目錄下查找,該目錄包含rc0.d、rc1.d等分別代表不同的init啟動級別的子目錄。

你可以用Runlevel命令查看當前你的系統是在那個運行級

#Runlevel      N  2 註:我當前的系統是2級

接著來看看這些rcx.d的目錄下所包含的內容,內容全是一些符號鏈接,鏈接到上一級init目錄中的腳本上。 這些符號鏈接名稱都以S或K開頭,後面跟一個數字以及該腳本所控制的服務名,例如S10network。 當init從低的運行級向高的運行級過渡時,它按照數字遞增的順序運行所有以S開頭的腳本,S=start,即啟動腳本對應的服務;K=kill,即殺死腳本對應服務。

前面介紹到rcx.d目錄下指向啟動腳本的符號鏈接是由K或S+數字+服務名 所組成,中間這個數字十分重要,系統啟動時按照這個數字遞增執行所有S開頭的腳本,系統關閉時按照這個數字遞減執行所有K開頭的腳本。

如何自定義符號鏈接? 啟動腳本: 因為我剛才的運行級是2級 所以在/etc/rc.d/rc2.d 目錄下運行

#ln -s /etc/init.d/nginx S99nginx       //重新定義nginx服務的腳本啟動順序

 

 

 






[火星人 via ] Ubuntu Nginx 開機自啟動已經有274次圍觀

http://www.coctec.com/docs/linux/show-post-68645.html