添加nginx作为系统服务
前言
創建一個腳本,該腳本將改變nginx守護進程,讓nginx以系統服務的形式啟動,守護進程以后將由標準的命令控制且在系統啟動時自動啟動。
System V腳本
大多數基于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腳本
init腳本是作為系統啟動服務的腳本,腳本必須接收兩個命令:start和stop,在系統啟動時,如果該服務的啟動計劃級別正是系統運行級別,那么init守護進程將運行該腳本。
手動執行腳本:
| [root@localhost rc.d]# service nginx start |
或系統未提供service命令:
| [root@localhost rc.d]# /etc/init.d/nginx start |
為nginx建立init腳本
目錄/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: nginxnginx=/usr/local/nginx/sbin/nginx conf=/usr/local/nginx/conf/nginx.conf case $1 in 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 '{print $2}' | xargs kill -HUP echo " done" ;; restart) $0 stop $0 start ;; show) ps -aux|grep nginx ;; *) echo -n "Usage: $0 {start|restart|reload|stop|test|show}" ;; esac安裝nginx的init腳本
授予該腳本可執行權限:
| [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家族。
基于Debian的發布
一條命令即可完成系統級別初始化腳本:
| # update-rc.d -f nginx defaults |
該命令將在默認系統運行級別上建立鏈接,默認級別是指重啟(reboot)和關閉(shutdown)級別,對于這兩種級別,該腳本會執行stop參數,對于其他級別,則傳遞start參數而運行。
基于Red Hat的發布
添加服務:
| # chkconfig –add nginx |
檢驗該服務的運行級別:
| # chkconfig –list nginx |
使用ntsysv管理系統服務
ntsysv列出了所有能夠計劃在系統啟動時執行的服務,可以開啟它們,也可以禁用它們。
| # yum install ntsysv -y |
使用ntsysv:
| # ntsysv |
總結
以上是生活随笔為你收集整理的添加nginx作为系统服务的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 百度站点属性怎么设置?PC移动站/独立移
- 下一篇: 系统服务