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

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

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

 

[plain] 
  1. vim /usr/lib/systemd/system/tomcat.service  
[plain] 
 
  1. [Unit]  
  2. Description=tomcatapi  
  3. After=network.target  
  4.    
  5. [Service]  
  6. Type=forking  
  7. PIDFile=/usr/local/tomcat/tomcat.pid  
  8. ExecStart=/usr/local/tomcat/bin/startup.sh  
  9. ExecReload=  
  10. ExecStop=/usr/local/tomcat/bin/shutdown.sh  
  11. PrivateTmp=true  
  12.    
  13. [Install]  
  14. WantedBy=multi-user.target  

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

 

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

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

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

最後用如下命令將服務加入開機啓動便可:.net

 

  1. systemctl enable tomcat
[html]  view plain  copy
 成功案例(emqttd自啓動服務):

emqttd開機自啓動:
在此目錄下面新建文件emqttd.service
vim /usr/lib/systemd/system/emqttd.servicexml

加入配置文件
[Unit]
Description=emqttdapi
After=network.target
[Service]
Type=forking
Environment=HOME=/opt/emqttd
ExecStart=/opt/emqttd/bin/emqttd start
ExecReload=/opt/emqttd/bin/emqttd reboot
ExecStop=/opt/emqttd/bin/emqttd stop
PrivateTmp=true
[Install]
WantedBy=multi-user.targethtm

最後執行命令
systemctl enable emqttd.serviceblog

相關文章
相關標籤/搜索