systemd 是 Linux 下的一款系统和服务管理器,兼容 SysV ,Upstart和 LSB 的启动脚本。在CentOS 7中成为默认的服务管理器。
#CentOS 5: SysV init
#CentOS 6: Upstart
#CentOS 7: Systemd
systemd 的特性有:
- 支持并行化任务;
- 同时采用 socket 式与D-Bus总线式激活服务;
- 按需启动守护进程(daemon);
- 利用 Linux 的 cgroups监视进程;
- 支持快照和系统恢复;
- 维护挂载点和自动挂载点;
- 各服务间基于依赖关系进行精密控制。
systemd核心概念:unit
systemd引入了一个新的概念,叫做unit,所有可用的单元文件存放在 /usr/lib/systemd/system/
和 /etc/systemd/system/
目录。
unit类型:
系统服务(.service
):.service, 用于定义系统服务;
挂载点(.mount
):.mount,定义文件系统挂载点;
sockets(.sockets
) :.socket, 用于标识进程间通信用的socket文件;
系统设备(.device
):.device, 用于定义内核识别的设备;
交换分区(.swap
): .swap, 用于标识swap设备;
文件路径(.path
):.path,用于定义文件系统中的一个文件或目录;
启动目标(.target
):.target,用于模拟实现“运行级别”;
系统快照(.swap
):.swap, 用于标识swap设备;
自动挂载点(.automount
):.automount,文件系统的自动挂载点;
systemd的主要命令是systemctl
。该命令可用于查看系统状态和管理系统及服务。
命令格式:
systemctl [OPTIONS...] COMMAND [NAME...]
显示系统状态:
systemctl status
查看激活的单元:
systemctl | systemctl list-units
查看失败的单元
systemctl --failed
服务管理:
启动服务:
systemctl start name.service #.service可以不加
关闭服务:
systemctl stop name.service
查看服务状态:
systemctl status name.service
重启服务:
systemctl restart name.service
条件式重启:
systemctl try-restart name.service
重载或重启服务:
systemctl reload-or-restart name.service
重载或条件式重启服务:
systemctl reload-or-try-restart name.service
查看所有已激活的服务:
systemctl list-units --type service
查看所有服务:
systemctl list-units --type service --all
查看某服务当前激活与否状态:
systemctl is-active name.service
设置服务开机启动:
systemctl enable name.service
禁止服务开机启动:
systemctl disable name.service
查看服务是否开机启动:
systemctl is-enabled name.service
查看所有服务是否开机启动:
systemctl list-unit-files --type service
禁止设为开机启动:
systemctl mask name.service
取消禁止设为开启启动:
systemctl unmask name.service
查看服务启动依赖关系:
systemctl list-dependencies name.service
在RHEL/CentOS 5/6 中,更改系统默认的启动运行级别的方式是编辑/etc/inittab
,systemd 是向前兼容的,那么systemd 的运行级别为:
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
运行级别切换:
systemctl isolate name.target
查看当前默认运行级别:
systemctl get-default
修改默认级别:
systemctl set-default name.target
电源管理:
关机:
systemctl halt | systemctl poweroff
重启:
systemctl reboot
休眠:
systemctl hibernate
混合休眠模式:(同时休眠硬盘并待机)
systemctl hybrid-sleep