今天剛用源碼安裝以一下nginx服務,但突然發現常用的systemctl啓動命令不管用,出現報錯如下圖所示:
一、systemd簡介
centos 7以上是用Systemd進行系統初始化的,Systemd 是 Linux 系統中最新的初始化系統(init),它主要的設計目標是克服 sysvinit 固有的缺點,提高系統的啓動速度。
Systemd服務文件以.service結尾,比如現在要建立nginx爲開機啓動,如果用yum install命令安裝的,yum命令會自動創建nginx.service文件,可以直接使用systemctl相關命令。而用源碼編譯安裝的,則需要手動創建nginx.service服務文件。
二、創建並配置nginx.service文件
1、配置nginx.service文件
vim /usr/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、重新加載 systemd
systemctl daemon-reload
三、nginx服務常用操作
#查看nginx服務狀態
systemctl status nginx.service
#啓動nginx服務
systemctl start nginx.service
#停止nginx服務
systemctl stop nginx.service
#重啓nginx服務
systemctl restart nginx.service
#重新讀取nginx配置(這個最常用, 不用停止nginx服務就能使修改的配置生效)
systemctl reload nginx.service
注意:啓動前停止nginx服務,否則啓動時可能出現報錯