centos7 管理开机启动:systemd
一、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
查看开启开机启动的服务
systemctl list-unit-files|grep enabled
三、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
systemd 关机命令
poweroff
systemctl poweroff
重启命令
reboot
systemctl reboot
Systemctl - 显示服务状态
若是用户需要查看某个服务的状态,可以通过如下命令来进行查看:
systemctl status name.service
其中的命令参数说明如下:
Loaded:说明服务是否被加载,同时显示对应的绝对路径是否启用
Active:说明服务是否正在运行,并显示时间节点
Main PID:相应系统服务PID值
CGroup:相关控制组的其他信息
Systemctl - 其他操作
Systemd亦可通过systemctl命令对系统进行关机、重启、休眠等操作,具体命令如下:
关闭系统:
systemctl poweroff #关闭系统并下电
systemctl halt #关闭系统但不下电
重启系统:
systemctl reboot
系统待机:
systemctl suspend
系统休眠:
systemctl hibernate systemctl hybrid-sleep #使系统待机并处于休眠状态