原文: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
Centos 7.x 中取消了iptables, 用firewall取而代之。要關閉防火牆並禁止開機啓動服務使用下面的命令:
systemctl disable firewalld.service