設定開機自啟動nginx和httpd

字正腔圓發表於2020-11-16

設定Apache(httpd)和Nginx 開機自啟動

 方法1:

進入目錄: vi  /etc/rc.d/rc.local

#設定apache 和 nginx 開機自啟動
/usr/sbin/apachectl start
/usr/sbin/nginx start

 

 

 

 

centos 7以上是用Systemd進行系統初始化的,Systemd 是 Linux 系統中最新的初始化系統(init),它主要的設計目標是克服 sysvinit 固有的缺點,提高系統的啟動速度。關於Systemd的詳情介紹在這裡

Systemd服務檔案以.service結尾,比如現在要建立nginx為開機啟動,如果用yum install命令安裝的,yum命令會自動建立nginx.service檔案,直接用命令

systemcel enable nginx.service

設定開機啟動即可。
在這裡我是用原始碼編譯安裝的,所以要手動建立nginx.service服務檔案。
開機沒有登陸情況下就能執行的程式,存在系統服務(system)裡,即:

/lib/systemd/system/

1.在系統服務目錄裡建立nginx.service檔案

vim /lib/systemd/system/nginx.service

內容如下

[Unit] 
Description=nginx 
After=network.target 

[Service] 
Type=forking 
ExecStart=/usr/local/nginx/sbin/nginx 
ExecReload=/usr/local/nginx/sbin/nginx -s reload 
ExecStop=/usr/local/nginx/sbin/nginx -s quit
PrivateTmp=true 

[Install] 
WantedBy=multi-user.target

[Unit]:服務的說明
Description:描述服務
After:描述服務類別
[Service]服務執行引數的設定
Type=forking是後臺執行的形式
ExecStart為服務的具體執行命令
ExecReload為重啟命令
ExecStop為停止命令
PrivateTmp=True表示給服務分配獨立的臨時空間
注意:[Service]的啟動、重啟、停止命令全部要求使用絕對路徑
[Install]執行級別下服務安裝的相關設定,可設定為多使用者,即系統執行級別為3

儲存退出。

2.設定開機啟動

systemctl enable nginx.service

3.其它命令
啟動nginx服務

systemctl start nginx.service

設定開機自啟動

systemctl enable nginx.service

停止開機自啟動

systemctl disable nginx.service

檢視服務當前狀態

systemctl status nginx.service

重新啟動服務

systemctl restart nginx.service

檢視所有已啟動的服務

systemctl list-units --type=service

4.Systemd 命令和 sysvinit 命令的對照表

Sysvinit 命令Systemd 命令備註
service foo startsystemctl start foo.service用來啟動一個服務 (並不會重啟現有的)
service foo stopsystemctl stop foo.service用來停止一個服務 (並不會重啟現有的)。
service foo restartsystemctl restart foo.service用來停止並啟動一個服務。
service foo reloadsystemctl reload foo.service當支援時,重新裝載配置檔案而不中斷等待操作。
service foo condrestartsystemctl condrestart foo.service如果服務正在執行那麼重啟它。
service foo statussystemctl status foo.service彙報服務是否正在執行。
ls /etc/rc.d/init.d/systemctl list-unit-files –type=service用來列出可以啟動或停止的服務列表。
chkconfig foo onsystemctl enable foo.service在下次啟動時或滿足其他觸發條件時設定服務為啟用
chkconfig foo offsystemctl disable foo.service在下次啟動時或滿足其他觸發條件時設定服務為禁用
chkconfig foosystemctl is-enabled foo.service用來檢查一個服務在當前環境下被配置為啟用還是禁用。
chkconfig –listsystemctl list-unit-files –type=service輸出在各個執行級別下服務的啟用和禁用情況
chkconfig foo –listls /etc/systemd/system/*.wants/foo.service用來列出該服務在哪些執行級別下啟用和禁用。
chkconfig foo –addsystemctl daemon-reload當您建立新服務檔案或者變更設定時使用。
telinit 3systemctl isolate multi-user.target (OR systemctl isolate runlevel3.target OR telinit 3)改變至多使用者執行級別。

5.Sysvinit 執行級別和 systemd 目標的對應表

Sysvinit 執行級別Systemd 目標備註
0runlevel0.target, poweroff.target關閉系統。
1, s, singlerunlevel1.target, rescue.target單使用者模式。
2, 4runlevel2.target, runlevel4.target, multi-user.target使用者定義/域特定執行級別。預設等同於 3。
3runlevel3.target, multi-user.target多使用者,非圖形化。使用者可以通過多個控制檯或網路登入。
5runlevel5.target, graphical.target多使用者,圖形化。通常為所有執行級別 3 的服務外加圖形化登入。
6runlevel6.target, reboot.target重啟
emergencyemergency.target緊急 Shell

相關文章