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

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

[Unit]linux

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

[Service]部分是服務的關鍵,是服務的一些具體運行參數的設置.
Type=forking是後臺運行的形式,
User=users是設置服務運行的用戶,
Group=users是設置服務運行的用戶組,
PIDFile爲存放PID的文件路徑,
ExecStart爲服務的具體運行命令,
ExecReload爲重啓命令,
ExecStop爲中止命令,
PrivateTmp=True表示給服務分配獨立的臨時空間tomcat

[Service]測試

注意:[Service]部分的啓動、重啓、中止命令所有要求使用絕對路徑,使用相對路徑則會報錯!rest

[Install]ip

[Install]部分是服務安裝的相關設置,可設置爲多用戶的
首先,使用systemctl start [ 服務名(也是文件名) ] 可測試服務是否能夠成功運行,若是不能運行則能夠使用systemctl status [ 服務名(也是文件名) ]查看錯誤信息和其餘服務信息,而後根據報錯進行修改,直到能夠start,若是不放心還能夠測試restart和stop命令。get

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

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

#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

服務操做

添加可執行權限:

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

設置爲開機自啓動:

#systemctl enable tomcat.service

經常使用指令(以tomcat服務爲例):
啓動某服務

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
相關文章
相關標籤/搜索