CentOS7中新增了unit(单元)的概念,它是所有资源的统称。
unit总共分为:
- Service:系统服务
- Target:多个 Unit 构成的一个组
- Device:硬件设备
- Mount:文件系统的挂载点
- Automount:自动挂载点
- Path:文件或路径
- Scope:不是由 Systemd 启动的外部进程
- Slice:进程组
- Snapshot:Systemd 快照,可以切回某个快照
- Socket:进程间通信的 socket
- Swap:swap 文件
- Timer:定时器
Systemd由一个叫做单元(Unit)的概念,它保存了服务、设备、挂载点和操作系统其他信息的配置文件,并能够处理不同单元之间的依赖关系。大部分单元都静态的定义在单元文件中,也有一些是动态生成的。单元有多种状态:
-
处于活动的则是(active),当前正在运行
-
停止的则是(inactive),当前已经停止
-
启动中的则是(activing),当前正在启动
-
停止中的则是(deactiving),当前正在停止
-
失败的则是(failed)状态,意思说单元启动过程中遇到错误比如找不到文件、路径或者进程运行中崩溃了等。
systemctl list-units
# 查看当前系统的所有unit
systemctl list-units --type=service
# 查看所有类型为service的unit
systemctl status
# 查看当前系统中的unit状态
systemctl status sshd.service
# 查看指定的sshd.service的状态
systemctl is-active sshd.service
# 查看某个 Unit 是否正在运行
systemctl is-failed sshd.service
# 查看某个 Unit 是否处于关闭状态
systemctl is-enabled sshd.service
# 查看某个 Unit 是否开启了自启动状态
在旧版本的CentOS6中,对于RPM包安装的服务的管理,主要是通过service命令和chkconfig命令来管理。如:
service network start|stop|status|restart|reload|force-reload
# 网络服务的启动|关闭|状态|重启|重新加载配置文件|强制重新加载配置文件
chkconfig network on|off
# 开启|关闭网络服务的自启动
在CentOS7中,对于RPM包安装的服务的管理,可以采用systemctl命令来管理,同时,向下兼容service命令和chkconfig命令。
systemctl start|stop|status|restart|reload|force-reload network
# 网络服务的启动|关闭|状态|重启|重新加载配置文件|强制重新加载配置文件
systemctl enable|disable network
# 开启|关闭网络服务的自启动
systemctl daemon-reload
# 重载所有修改过的配置文件
每一个 unit 都有一个配置文件,告诉 systemd 怎么启动这个 unit 。
systemd 默认从目录/etc/systemd/system/读取配置文件。但是,里面存放的大部分文件都是符号链接,指向目录/usr/lib/systemd/system/中的配置文件,真正的配置文件存放在/usr/lib/systemd/system/目录中。
systemctl enable命令,用于在上面两个目录之间,建立符号链接。
systemctl disable命令,用于在上面两个目录之间,撤销符号链接。
systemctl list-unit-files
# 列出所有unit的配置文件
systemctl list-unit-files --type=service
# 列出所有服务的配置文件
systemctl cat network.service
# 查看network服务的配置文件的内容
# 说明:末尾的.service可以省略,默认就是查看服务类型的unit。