CentOS7自定義系統服務
CentOS7的服務systemctl腳本存放在:/usr/lib/systemd/,有系統(system)和用戶(user)之分,需要開機不登陸就能運行的程序,存在系統服務里,即:/usr/lib/systemd/system目錄下.
CentOS7的每一個服務以.service結尾,一般會分為3部分:[Unit]、[Service]和[Install]
[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命令。
接着,只要使用systemctl enable xxxxx就可以將所編寫的服務添加至開機啟動即可。
實例:服務用於開機運行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
添加可執行權限:
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