Centos7 systemctl添加自定義系統開機服務


Centos7的服務systemctl腳本存放在: /usr/lib/systemd/

有系統(system)和用戶(user)之分,需要開機不登陸就能運行的程序,存下系統服務里,即:/usr/lib/systemd/system目錄下。

Centos7的每一個服務以.service結尾,一般會分為3部分:【Unit】【Service】 【Install】

  【Unit】部分主要是對這個服務的說明。

  • 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命令
  • 接着,只要使用systemctl enable xxxxx就可以將所編寫的服務添加至開機啟動即可。

  

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

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

[Unit] Description=frps daemon After=syslog.target network.target Wants=network.target [Service] Type=simple PIDFile= ExecStart=/usr/local/frpc/frpc -c /usr/local/frpc/frpc.ini ExecStop= ExecReload= Restart= always RestartSec=1min PrivateTmp=True [Install] WantedBy=multi-user.target

 

 添加可執行權限:

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

 

設置為開機自啟動:

#systemctl enable tomcat.service

  

常用指令(以frpc服務為例):

啟動某服務
systemctl start  frpc.service
 
停止某服務
systemctl stop   frpc.service
 
重啟某服務
service  frpc restart
systemctl restart   frpc.service
 
使某服務自動啟動(如frpc服務)
systemctl enable   frpc.service
 
使某服務不自動啟動
systemctl disable   frpc.service
 
檢查服務狀態
systemctl   status   frpc.service (服務詳細信息)
systemctl   is-active   frpc.service(僅顯示是否Active)
 
顯示所有已啟動的服務
systemctl list-units  --type=service 

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM