Ubuntu14.04配置nginx開機自啓動項

原文: https://www.jianshu.com/p/2e03255cfabbphp

ubuntu配置開機自動啓動服務linux

 

----------------------------------------------------------------nginx

這裏須要特別說明的是,Ubuntu系統下沒有RedHat系統下的chkconfig命令。
但Ubuntu有一個相似的命令: sysv-rc-confexpress

經過apt-get命令完成sysv-rc-conf軟件的安裝。ubuntu

背景

Linux系統的運行級別有7個,分別對應的:ruby

  • 0: 關機
  • 1: 單用戶(維護)
  • 2~5: 多用戶
  • 6: 重啓

能夠經過runlevel命令來查看當前系統的運行等級:bash

wds@wds-VirtualBox:~$ runlevel N 2 

其中第一個表示上一次的運行等級,N表示沒有上一次運行等級的記錄;第二個表示當前運行等級,這裏爲2.php-fpm

Linux中全部開機自啓動項目運行腳本都放在/etc/init.d/目錄下;同時在/etc/目錄下有rc?.d目錄,分別對應了7中不一樣的運行級別:oop

wds@wds-VirtualBox:/$ ls /etc/ | grep ^rc rc0.d rc1.d rc2.d rc3.d rc4.d rc5.d rc6.d rc.local rcS.d 

這裏rc2.d目錄就對應了咱們系統當前的運行等級。ui

其中裏面的一些文件其實都是/etc/init.d/目錄下文件的軟連接:

wds@wds-VirtualBox:/etc/rc2.d$ ls -ltr total 4 -rw-r--r-- 1 root root 677 3月 13 2014 README lrwxrwxrwx 1 root root 18 12月 8 19:49 S99rc.local -> ../init.d/rc.local lrwxrwxrwx 1 root root 18 12月 8 19:49 S99ondemand -> ../init.d/ondemand lrwxrwxrwx 1 root root 18 12月 8 19:49 S70pppd-dns -> ../init.d/pppd-dns lrwxrwxrwx 1 root root 19 12月 8 19:49 S70dns-clean -> ../init.d/dns-clean lrwxrwxrwx 1 root root 15 12月 8 19:49 S50saned -> ../init.d/saned lrwxrwxrwx 1 root root 27 12月 8 19:49 S20speech-dispatcher -> ../init.d/speech-dispatcher lrwxrwxrwx 1 root root 15 12月 8 19:49 S20rsync -> ../init.d/rsync lrwxrwxrwx 1 root root 20 12月 8 19:49 S20kerneloops -> ../init.d/kerneloops lrwxrwxrwx 1 root root 21 12月 9 17:25 S99grub-common -> ../init.d/grub-common lrwxrwxrwx 1 root root 15 12月 9 17:45 S20nginx -> ../init.d/nginx lrwxrwxrwx 1 root root 17 12月 9 17:47 S20php-fpm -> ../init.d/php-fpm 

整個開機自啓動項的流程以下:

  1. 開機後,系統得到當前的運行等級(例如這裏的等級爲2);
  2. 運行/etc/rc?.d目錄下的全部可執行文件(這裏運行/etc/rc2.d/目錄下全部的軟連接。這些軟連接的源文件都保存在/etc/init.d/目錄下)。

所以咱們只須要在/etc/init.d/完成啓動nginx進程的腳本,而後在/etc/rc2.d/作對應的軟連接便可。

配置nginx自啓動文件

建立/etc/init.d/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 

而後利用sysv-rc-conf命令將其在對應rc?.d目錄下創建一個軟連接:

root@wds-VirtualBox:~# sysv-rc-conf nginx on 

該命令會在rc2.d ~ rc5.d目錄下都創建了一個nginx的軟連接。

做者:北極狐狸連接:https://www.jianshu.com/p/2e03255cfabb來源:簡書簡書著做權歸做者全部,任何形式的轉載都請聯繫做者得到受權並註明出處。

相關文章
相關標籤/搜索