首頁 > 軟體

CentOS7開機啟動管理systemd簡介及使用

2020-06-16 18:01:39

systemd提供更優秀的框架以表示系統服務間的依賴關係
實現系統初始化時服務的並行啟動,同時達到降低Shell的系統開銷的效果
systemd的目標是:盡可能啟動更少進程;盡可能將更多進程並行啟動。
systemd盡可能減少對shell指令碼的依賴。

systemd單位型別

(systemctl --type=單位型別,用來過濾單位):
服務(service):管理著後台服務;
掛載(mount)自動掛載(automount):用來掛載檔案系統;
目票(target):執行級別;
通訊端(socket):用來建立通訊端,並在存取通訊端後,立即利用依賴關係間接地啟動另一單位;

開機服務管理

=================================================
systemd新增新的unit(daemon)
也就是採用systemd來管理,/sbin/chkconfig --add foo相當
把新生成的foo.service 放到/usr/lib/systemd/system/下面,然後採用load命令匯入
systemctl load foo.service

刪除unit(daemon)
刪除一個unit沒有相應的命令,通常的做法是停掉daemon,然後刪除相應的組態檔。

開機啟動unit
systemctl enable postfix.service
增加由/usr/lib/systemd/system/到/etc/systemd/system/multi-user.target.wants/下的軟連結
ln -s '/usr/lib/systemd/system/postfix.service' '/etc/systemd/system/multi-user.target.wants/postfix.service'

開機不啟動unit
systemctl disable httpd.service
刪除/etc/systemd/system/multi-user.target.wants下的軟連結

檢視開機是否啟動
systemctl is-enabled .service #查詢服務是否開機啟動

systemd檢視開機自啟動的程式
相當於chkconfig --list
ls /etc/systemd/system/multi-user.target.wants/

檢視systemd單元載入及活動情況
systemctl

顯示啟動失敗的單元
systemctl --failed

檢視systemd管理的所有單元
systemctl list-unit-files

服務管理

=================================================
啟動服務
systemctl start httpd.service
關閉服務
systemctl stop httpd.service
重新啟動服務
systemctl restart httpd.service
重新載入
systemctl reload httpd.service
檢視狀態
systemctl status httpd.service
包括啟動狀態、啟動時間、主進程及相關進程、相關紀錄檔

執行級別

=================================================
systemd用target替代了runlevel的概念,多個的 'target' 可以同時啟用
systemd不使用/etc/inittab,如何檢視系統預設的執行級別
ll /etc/systemd/system/default.target
檢視這個軟連結真正指向的檔案

如何檢視系統的當前執行級別
runlevel依然可用
systemd的方法是:systemctl list-units --type=target

改變當前target,重新啟動無效
systemctl isolate graphical.target

修改預設執行級別
1.首先刪除已經存在的符號連結
rm /etc/systemd/system/default.target
2.預設級別轉換為3(文字模式)
systemctl enable multi-user.target
相當於ln -s /lib/systemd/system/multi-user.target /etc/systemd/system/default.target
3.重新啟動
reboot

執行級別如下:
runlevel0.target -> poweroff.target
runlevel1.target -> rescue.target
runlevel2.target -> multi-user.target
runlevel3.target -> multi-user.target
runlevel4.target -> multi-user.target
runlevel5.target -> graphical.target
runlevel6.target -> reboot.target

CentOS7/RHEL7 systemd詳解   http://www.linuxidc.com/Linux/2015-04/115937.htm

為什麼systemd會被如此迅速的採用? http://www.linuxidc.com/Linux/2014-08/105789.htm

systemd 與 sysVinit 彩版對照表 http://www.linuxidc.com/Linux/2014-09/106455.htm

太有用了!用systemd命令來管理Linux系統!  http://www.linuxidc.com/Linux/2014-09/106490.htm

淺析 Linux 初始化 init 系統,第 3 部分: Systemd  http://www.linuxidc.com/Linux/2014-12/110383.htm

本文永久更新連結地址http://www.linuxidc.com/Linux/2015-04/116648.htm


IT145.com E-mail:sddin#qq.com