CentOS7利用systemctl添加自定義系統服務


CentOS 7的服務systemctl腳本存放在:/usr/lib/systemd/,有系統(system)和用戶(user)之分,需要開機不登陸就能運行的程序,存在系統服務里,即:/usr/lib/systemd/system目錄下

每一個服務以.service結尾,一般會分為3部分:[Unit]、[Service]和[Install],我寫的這個服務用於開機運行tomcat項目:

vim /usr/lib/systemd/system/tomcat.service  
[Unit]  
Description=tomcatapi  
After=network.target  
   
[Service]  
Type=forking  
PIDFile=/usr/local/tomcat/tomcat.pid  
ExecStart=/usr/local/tomcat/bin/startup.sh  
ExecReload=  
ExecStop=/usr/local/tomcat/bin/shutdown.sh  
PrivateTmp=true  
   
[Install]  
WantedBy=multi-user.target 

[Unit]部分主要是對這個服務的說明,內容包括Description和After,Description用於描述服務,After用於描述服務類別;

 

[Service]部分是服務的關鍵,是服務的一些具體運行參數的設置,這里Type=forking是后台運行的形式,PIDFile為存放PID的文件路徑,ExecStart為服務的運行命令,ExecReload為重啟命令,ExecStop為停止命令,PrivateTmp=True表示給服務分配獨立的臨時空間,注意:[Service]部分的啟動、重啟、停止命令全部要求使用絕對路徑,使用相對路徑則會報錯;

[Install]部分是服務安裝的相關設置,可設置為多用戶的

 

服務腳本按照上面編寫完成后,以754的權限保存在/usr/lib/systemd/system目錄下,這時就可以利用systemctl進行測試了

最后用以下命令將服務加入開機啟動即可:

systemctl enable tomcat  

 

文件內容解釋

[Unit]:服務的說明
Description:描述服務
After:描述服務類別

[Service]服務運行參數的設置
Type=forking是后台運行的形式
ExecStart為服務的具體運行命令
ExecReload為重啟命令
ExecStop為停止命令
PrivateTmp=True表示給服務分配獨立的臨時空間
注意:啟動、重啟、停止命令全部要求使用絕對路徑

[Install]服務安裝的相關設置,可設置為多用戶

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM