一、CentOS7 systemd 介紹
在 CentOS7 中,使用 systemd 來管理其他服務是否開機啟動,systemctl 是 systemd 服務的命令行工具
[root@mysql ~]# systemctl start httpd.service // 啟動服務 [root@mysql ~]# systemctl stop httpd.service // 關閉服務 [root@mysql ~]# systemctl restart httpd.service // 重啟服務 [root@mysql ~]# systemctl status httpd.service // 查看服務狀態
[root@mysql ~]# systemctl is-enabled httpd.service // 查看指定的服務是否開機啟動 [root@mysql ~]# systemctl enable httpd.service // 設置指定的服務開機啟動 [root@mysql ~]# systemctl disable httpd.service // 設置指定的服務開機不啟動
二、CentOS7 unit 介紹
(1) CentOS7 中新增了 unit(單元)的概念,它是系統所有資源的統稱,不同的資源稱為不同的 unit(單元)
(2) 常見的 unit 有:Service Unit ( 系統服務 ) 、Device Unit ( 硬件設備 ) 、Path Unit ( 文件或路徑 ) 等等
(3) Systemd 用來管理這些單元,它保存了系統服務、硬件設備、掛載點等單元的配置文件,並能夠處理不同單元之間的依賴關系
(4) 單元的狀態:active 、inactive 、activing 、deactiving ,分別表示正在運行 、已經停止運行 、正在啟動 、正在停止
[root@mysql ~]# systemctl list-units // 列出正在運行的unit [root@mysql ~]# systemctl list-units --all // 列出所有狀態的unit [root@mysql ~]# systemctl list-units --all --state=active // 列出指定狀態的unit [root@mysql ~]# systemctl list-units --type=service // 列出指定類型的unit
三、CentOS7 target 介紹
(1) target 其實就是一組 unit 組合,CentOS7 的 target 相當於 CentOS6 的 runlevel ( 運行級別 ) ,啟動一個 target,就相當於啟動多個 unit
(2) 一個 service 屬於一種類型的 unit ,多個 unit 可以組成一個 target ,一個 target 包含了多個 service
[root@mysql ~]# ll /usr/lib/systemd/system lrwxrwxrwx. 1 root root 15 Mar 27 08:27 runlevel0.target -> poweroff.target lrwxrwxrwx. 1 root root 13 Mar 27 08:27 runlevel1.target -> rescue.target drwxr-xr-x. 2 root root 50 Mar 27 08:27 runlevel1.target.wants lrwxrwxrwx. 1 root root 17 Mar 27 08:27 runlevel2.target -> multi-user.target drwxr-xr-x. 2 root root 50 Mar 27 08:27 runlevel2.target.wants lrwxrwxrwx. 1 root root 17 Mar 27 08:27 runlevel3.target -> multi-user.target drwxr-xr-x. 2 root root 50 Mar 27 08:27 runlevel3.target.wants lrwxrwxrwx. 1 root root 17 Mar 27 08:27 runlevel4.target -> multi-user.target drwxr-xr-x. 2 root root 50 Mar 27 08:27 runlevel4.target.wants lrwxrwxrwx. 1 root root 16 Mar 27 08:27 runlevel5.target -> graphical.target drwxr-xr-x. 2 root root 50 Mar 27 08:27 runlevel5.target.wants lrwxrwxrwx. 1 root root 13 Mar 27 08:27 runlevel6.target -> reboot.target
[root@mysql ~]# systemctl get-default // 查看當前系統默認的target [root@mysql ~]# systemctl list-unit-files --type=target //列出所有target [root@mysql ~]# systemctl list-dependencies multi-user.target // 查看指定target下有哪些unit
[root@mysql ~]# systemctl get-default
multi-user.target
[root@mysql ~]# systemctl list-dependencies multi-user.target multi-user.target ● ├─auditd.service ● ├─crond.service ● ├─dbus.service ● ├─firewalld.service ● ├─irqbalance.service ● ├─kdump.service ● ├─network.service ● ├─NetworkManager.service ● ├─plymouth-quit-wait.service ● ├─plymouth-quit.service ● ├─postfix.service ● ├─rhel-configure.service ● ├─rsyslog.service ● ├─sshd.service