systemctl添加自定義系統服務


[Service]
Type=forking
ExecStart=絕對路徑
ExecStop=絕對路徑
ExecReload=絕對路徑

以上最精簡版,文件/usr/lib/systemd/system/服務.service

 

 

原理:

CentOS7自定義系統服務

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

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

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

接着,只要使用systemctl enable xxxxx就可以將所編寫的服務添加至開機啟動即可。

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#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

 添加可執行權限:

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

設置為開機自啟動:

1
#systemctl enable tomcat.service

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
啟動某服務
 
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


免責聲明!

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



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