建立乙個指令碼,該指令碼將改變nginx守護程序,讓nginx以系統服務的形式啟動,守護程序以後將由標準的命令控制且在系統啟動時自動啟動。
大多數基於linux的作業系統,使用的是system-v風格的init守護程序,啟動程序由init程序管理。
守護程序遵循執行級別的原則(run level),系統執行級別表示當前計算機狀態。
執行級別狀態0
系統停止
1單使用者模式(援救模式)
2多使用者模式(不支援nfs)
3完整的多使用者模式
4沒有使用
5圖形介面按模式
6重啟系統
關閉系統:
[root@localhost ~]# telinit 0
重啟系統:
[root@localhost ~]# telinit 6
對於每乙個執行級別的轉換都會有一組服務被執行,系統停止時它的執行級別為0,一旦開啟將轉換到預設啟動級別,系統預設啟動級別是在etc/inittab
檔案下配置的。
對於每乙個執行級別,在/etc/rc.d
目錄都包含要執行的指令碼:
rco.d-rc6.d並不是真實的檔案,他們的符號鏈結會指向/etc/init
目錄下的指令碼名,服務的啟動指令碼儲存在/etc/init
目錄下。
init指令碼是作為系統啟動服務的指令碼,指令碼必須接收兩個命令:start和stop,在系統啟動時,如果該服務的啟動計畫級別正是系統執行級別,那麼init守護程序將執行該指令碼。
手動執行指令碼:
[root@localhost rc.d]# service nginx start
或系統未提供service命令:
[root@localhost rc.d]# /etc/init.d/nginx start
目錄/etc/init.d
實際上是/etc/rc.d/init.d
的符號鏈結,因此在/etc/init.d
目錄下新建檔案nginx
(需要root許可權):
[root@localhost rc.d]# vi /etc/init.d/nginx
指令碼內容如下:
#!/bin/bash
## chkconfig: - 85 15
# description: nginx is a world wide web server.
# processname: nginx
nginx=/usr/local/nginx/sbin/nginx
conf=/usr/local/nginx/conf/nginx.conf
case
$1in
start)
echo -n "starting nginx"
$nginx -c $conf
echo
" done"
;;stop)
echo -n "stopping nginx"
killall -9 nginx
echo
" done"
;;test)
$nginx -t -c $conf
;;reload)
echo -n "reloading nginx"
ps auxww | grep nginx | grep master | awk '' | xargs kill -hup
echo
" done"
;;restart)
$0 stop
$0 start
;;show)
ps -aux|grep nginx
;;*)
echo -n "usage: $0 "
;;esac
授予該指令碼可執行許可權:
[root@localhost rc.d]# chmod +x /etc/init.d/nginx
然後就可以開啟nginx:
[root@localhost init.d]# service nginx start
或:[root@localhost init.d]# /etc/init.d/nginx start
最後一步是設定該指令碼在適當的執行級別開機自啟,這依賴於作業系統,主要針對廣泛使用的兩種作業系統家族:基於debain的debain/ubuntu/other家族和基於red hat的red hat/fedora/centos/other家族。
一條命令即可完成系統級別初始化指令碼:
# update-rc.d -f nginx defaults
該命令將在預設系統執行級別上建立鏈結,預設級別是指重啟(reboot)和關閉(shutdown)級別,對於這兩種級別,該指令碼會執行stop引數,對於其他級別,則傳遞start引數而執行。
新增服務:
# chkconfig –add nginx
檢驗該服務的執行級別:
ntsysv列出了所有能夠計畫在系統啟動時執行的服務,可以開啟它們,也可以禁用它們。
# yum install ntsysv -y
使用ntsysv:
windows安裝nginx作為系統服務
nginx一般用於linux unix系統作為web伺服器,但是不會linux unix系統的同學想要除錯nginx,例如做一些 靜態壓縮,快取等等,就需要在windows下使用nginx,一般是通過nginx根目錄命令列啟動,但是太麻煩,想把它 作為乙個系統自啟動服務 以winsw 2.2.0 b...
新增nginx為系統服務
使用nginx時候,肯定會操作到啟動,停止,重啟等操作。然後就寫到程序裡面,就很快操作了。直接上檔案。nginx檔案 1 在 etc init.d 目錄下編寫指令碼,名為nginx 然後最重要的三步。1 cp nginx etc init.d 2 service nginx stop 3 servi...
linux新增nginx系統服務
在linux上安裝好nginx後,除了通常需要配置的nignx conf檔案外,將nginx 加入service 系統服務可以更便捷的管理nginx 服務。具體操作很簡單,網上一搜一大把,這裡把我整理的方法總結一下,做個備忘。在 etc init.d 目錄下新建 nginx 檔案,將下面指令碼寫入 ...