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
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