centos7 添加自啟 服務


1、方法一:通過腳本設置

1)

chmod +x /etc/rc.d/rc.local

2) 在 /etc/rc.d/rc.local 中 添加需要自啟的軟件的啟動命令,如:

/usr/local/tomcat8/bin/startup.sh   // 執行 tomcat 啟動命令

2、方法二:通過配置系統服務來設置自啟動 systemctl

在CentOS 7中, 一些軟件程序會在安裝時自動創建服務, 比如Apache, PHP, MySQL, Nginx等等,
對於已經創建好的服務, 我們唯一要做的就是把服務設置成自啟動就可以了,如:

systemctl enable mysqld  // mysql服務自啟

systemctl status mysqld  // 查看服務狀態

systemctl disable mysqld  // 取消自啟

自己創建服務.
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]部分是服務安裝的相關設置,可設置為多用戶的

例如我們創建一個名為nginx.service的服務

#vim /usr/lib/systemd/system/nginx.service
 
[UNIT]
#服務描述
Description=Media wanager Service
#指定了在systemd在執行完那些target之后再啟動該服務
After=network.target

[Service]
#定義Service的運行類型,一般是forking(后台運行)   
Type=forking

#定義systemctl start|stop|reload *.service 的執行方法(具體命令需要寫絕對路徑)
#注:ExecStartPre為啟動前執行的命令
ExecStart=/opt/nginx/sbin/nginx
ExecReload=/opt/nginx/sbin/nginx -s reload
ExecStop=/opt/nginx/sbin/nginx -s stop

#創建私有的內存臨時空間
PrivateTmp=True

[Install]
#多用戶
WantedBy=multi-user.target

再 添加 可執行 權限

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

常用命令:

systemctl list-units --type=service   // 查看服務列表狀態
systemctl   list-unit-files           // 列出所有已經安裝的  服務  及  狀態 (可為人所讀,  內容簡略、清晰)
systemctl                             // 可以列出正在運行的服務狀態,如圖:(基本不為人所讀, 內容復雜、全面)
systemd-cgls                          // 以樹形列出正在運行的進程,它可以遞歸顯示控制組內容

systemctl start xxx.service           // 啟動一個服務
systemctl stop xxx.service            // 關閉一個服務
systemctl restart xxx.service         // 重啟一個服務
systemctl status xxx.service          // 查看服務狀態
systemctl is-enabled xxx.service      // 查看服務是否開機啟動
systemctl list-unit-files | grep enabled  // 查看已啟動的服務列表
systemctl --failed                    // 查看啟動失敗的服務列表


免責聲明!

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



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