1. 程式人生 > >CentOS7利用systemctl新增自定義系統服務

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

如文章對您有幫助,請開啟支付寶掃碼領取紅包,就當做對作者的支援,謝謝