1. 背景
CentOS 7.x 之前的版本,系統啟動時,第一支呼叫的程序是 init ,然后 init 去喚起所有的系統所需要的服務,無論是本地服務還是網絡服務。所有的服務啟動腳本都放置於 /etc/init.d 下面,基本上都是使用 bash shell script 所寫成的腳本程序。
從CentOS 7.x 以后,Red Hat 放棄了 init 啟動腳本的方法,改用systemd 這個啟動服務管理機制。
2.systemctl管理服務的好處
-
平行處理所有服務,加速開機流程
舊的init 啟動腳本是【一項一項任務依序啟動】的模式,因此不相依的服務也是一個一個的等待。但目前我們的硬件主機系統與操作系統幾乎都支持多核心結構了,systemd可以讓所有的服務同時啟動,系統啟動的速度變快了。 -
一經要求就相應的 on-demand 啟動方式
System 全部就是僅有一直systemd 服務 搭配systemctl 指令來處理,無需其它的指令來支持。不想之前的啟動方式還要init,chkconfig,service…等指令。此外,systemd 由於常駐內存,因此任何要求(on-demand)都可以立即處理后續的daemon啟動的任務。 -
服務相依性的自我檢查
由於systemd可以自定義服務相依性的檢查,因此如果 B 服務是架構在 A服務上面的,那當你在沒有啟動 A 服務的情況下僅手動啟動 B 服務時,systemd 會自動幫你啟動A服務。這樣可以免去管理員一項一項去分析的麻煩。
3.Systemd啟動腳配置文件所在目錄
目錄 | 說明 |
/lib/system/system/ | 使用CentOS官方提供的軟件安裝后,默認的啟動腳本配置文件都放在這里,這里的數據盡量不要修改。要修改時,請到 /etc/system/system低下修改較佳。 |
/etc/system/system/ | 管理員依據主機系統的需求所建立的執行腳本,其實這個目錄有點像之前的/etc/rc.d/rc5.d/Sxx 之類的功能。執行優先順序要比/run/system/system/ 高。 |
/run/system/system/ |
系統執行過程中所產生的服務腳本。 |
4.mysql服務
在之前的安裝中,我們一般都是 通過 support-files/mysql.server (單實例)、support-files/mysqld_multi.server (多實例)來配置服務。
例如 :https://www.cnblogs.com/xuliuzai/p/10078351.html
再如:https://www.cnblogs.com/xuliuzai/p/10732833.html
其實現管理mysql服務的腳本就是 在mysql.server、 mysqld_multi.server文件中。
腳本復雜並且修改比較困難。例如,我需要配置多實例,但不想修改既有的my.cnf 配置文件,如果新實例的文件名字命名為my3307.cnf,此時再用老的方法,去修改 mysql.server 就比較麻煩。
而如果用 system就比較簡單。
例如 ,定義一個測試服務為:mysql3307.service
[Unit] Description=MySQL Server After=network.target [Install] WantedBy=multi-user.target [Service] Type=forking TimeoutSec=0 PermissionsStartOnly=true ExecStart=/data/mysql57/bin/mysqld --defaults-file=/etc/my3307.cnf --daemonize LimitNOFILE = 65535 Restart=on-failure RestartSec=3 RestartPreventExitStatus=1 PrivateTmp=false
此服務的其它的一些操作命令;
systemctl enable mysql3307.service ---設置開啟自啟動
systemctl start mysql3307.service ----開啟此服務
systemctl stop mysql3307.service -----關閉此服務
systemctl status mysql3307.service -----查看服務狀態
注意 ; (1)/data/mysql57/bin/mysqld 路徑為 可執行文檔所在路徑;/etc/my3307.cnf 配置未見;
(2)Restart=on-failure 是決定 服務Failure 時,是否自動拉起;RestartSec=3 嘗試拉起間隔。
---------部分知識參考《鳥哥的Linux私房菜-基礎學習篇(第四版)》,謝謝!