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

CentOS7自定義系統服務java

CentOS7的服務systemctl腳本存放在:/usr/lib/systemd/,有系統(system)和用戶(user)之分,須要開機不登錄就能運行的程序,存在系統服務裏,即:/usr/lib/systemd/system目錄下.
CentOS7的每個服務以.service結尾,通常會分爲3部分:[Unit]、[Service]和[Install] vim

[Unit]部分主要是對這個服務的說明,內容包括Description和After,Description 用於描述服務,After用於描述服務類別
[Service]部分是服務的關鍵,是服務的一些具體運行參數的設置.
Type=forking是後臺運行的形式,
User=users是設置服務運行的用戶,
Group=users是設置服務運行的用戶組,
PIDFile爲存放PID的文件路徑,
ExecStart爲服務的具體運行命令,
ExecReload爲重啓命令,
ExecStop爲中止命令,
PrivateTmp=True表示給服務分配獨立的臨時空間
注意:[Service]部分的啓動、重啓、中止命令所有要求使用絕對路徑,使用相對路徑則會報錯!
[Install]部分是服務安裝的相關設置,可設置爲多用戶的

首先,使用systemctl start  [ 服務名(也是文件名) ] 可測試服務是否能夠成功運行,若是不能運行則能夠使用systemctl status [ 服務名(也是文件名) ]查看錯誤信息和其餘服務信息,而後根據報錯進行修改,直到能夠start,若是不放心還能夠測試restart和stop命令。tomcat

接着,只要使用systemctl enable xxxxx就能夠將所編寫的服務添加至開機啓動便可。測試

實例:服務用於開機運行tomcat項目:rest

#vim /usr/lib/systemd/system/tomcat.service

[Unit]
Description=java tomcat project
After=tomcat.service
 
[Service]
Type=forking
User=users
Group=users
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

 添加可執行權限:blog

chmod 754 /usr/lib/systemd/system/tomcat.service

設置爲開機自啓動:ip

#systemctl enable tomcat.service

 經常使用指令(以tomcat服務爲例):get

啓動某服務

systemctl start   tomcat.service

中止某服務

systemctl stop   tomcat.service

重啓某服務

service tomcat   restart

systemctl restart   tomcat.service

使某服務自動啓動(如tomcat服務)

systemctl enable   tomcat.service

使某服務不自動啓動

systemctl disable   tomcat.service

檢查服務狀態

systemctl   status tomcat.service (服務詳細信息)

systemctl   is-active tomcat.service(僅顯示是否Active)

顯示全部已啓動的服務

systemctl   list-units --type=service
相關文章
相關標籤/搜索