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

原文:https://www.cnblogs.com/saneri/p/7778756.htmlhtml

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就能夠將所編寫的服務添加至開機啓動便可。bash

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

#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

  添加可執行權限:rest

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

  設置爲開機自啓動:htm

systemctl enable tomcat.service

  

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

啓動某服務
 
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

  命令整理:
Systemctl start <單元>當即啓動單元
Systemctl stop <單元>當即關閉單元
Systemctl restart <單元>當即重啓單元
Systemctl reload <單元>重讀單元配置 (相似刷新)
Systemctl status <單元> 輸出單元運行狀態
Systemctl is-enable <單元> 查看單元是否自啓動
Systemctl enable <單元> 設置開機自啓
Systemctl disable <單元> 取消開機自啓
Systemctl is-active <單元>查看單元是否正在運行ip

 

 

關閉防火牆firewall

Centos 7.x 中取消了iptables, 用firewall取而代之。要關閉防火牆並禁止開機啓動服務使用下面的命令:

 systemctl stop firewalld.service

systemctl disable firewalld.service

相關文章
相關標籤/搜索