systemd简介
介绍
本文主要进行如下介绍:
- systemd背景
- systemctl用法
- 运行级别说明
- systemd文件
systemd背景
- systemd 是 Linux 下一个与 SysV 和 LSB 初始化脚本兼容的系统和服务管理器。
- systemd 无需经过任何修改便可以替代 sysvinit
- systemd 的世界里 service 和 chkconfig 命令将继续像之前一样工作。
- systemd 开启和监督整个系统是基于 unit 的概念。
systemctl用法
Unit状态
序号 | 命令 | 说明 |
---|---|---|
1 | systemctl | 列出正在运行的进程信息 |
2 | systemd-cgls | 列出正在运行的进程信息 |
3 | systemctl -t service | 列出所有正在运行的服务 |
4 | systemctl is-active xxx.service | 服务是否正在运行 |
5 | systemctl is-failed xxx.service | 服务是否启动失败 |
6 | systemctl status xxx.service | 服务当前状态详细信息 |
7 | systemctl is-enabled xxx.service | 服务是否开启自启动 |
Unit管理
序号 | 命令 | 说明 |
---|---|---|
1 | systemcal daemon-reload | 重载所有修改过的配置文件 |
2 | systemctl reload xxx.service | 重载服务配置文件 |
3 | systemctl start xxx.service | 启动服务 |
4 | systemctl stop xxx.service | 停止服务 |
5 | systemctl kill xxx.service | kill服务 |
6 | systemctl restart xxx.service | 重启服务 |
7 | systemctl enable xxx.service | 设置开机子启动 |
8 | systemctl disable xxx.service | 取消开机自启动 |
其他
序号 | 命令 | 说明 |
---|---|---|
1 | systemctl list-units | 列出正在运行的 Unit |
2 | systemctl list-unit-files | 列出所有配置文件 |
3 | systemctl list-dependencies xxx.service | 列出服务的依赖 |
4 | systemd-analyze | 查看启动耗时 |
5 | systemd-analyze blame | 查看每个服务启动耗时 |
6 | systemd-analyze critical-chain | 显示瀑布状的启动过程流 |
7 | systemctl get-default | 查看启动时的默认 Target |
8 | systemctl set-default multi-user.target | 设置启动时的默认 Target |
运行级别说明
Sysvinit运行级别 | Systemd目标 | 说明 |
---|---|---|
0 | runlevel0.target, poweroff.target | 关闭系统 |
1 | runlevel1.target, rescue.target | 单用户模式 |
2,4 | runlevel2.target, runlevel4.target, multi-user.target | 用户定义/域特定运行级别默认等同于 3 |
3 | runlevel3.target, multi-user.target | 多用户非图形化,通过多个控制台或网络录。 |
5 | runlevel5.target, graphical.target | 通常为所有运行级别3的服务外加图形化录 |
6 | runlevel6.target, reboot.target | 重启 |
emergency | emergency.target | 紧急 Shell |
改变运行级别
改变至多用户(非图形化)运行级别:
- systemctl isolate multi-user.target
- systemctl isolate runlevel3.target
- telinit 3
设置在下一次启动时使用多用户(非图形化)运行级别:
- ln -sf /lib/systemd/system/multi-user.target /etc/systemd/system/default.target
- systemctl set-default multi-user.target
关机:
- poweroff
- halt -p
- init 0
- shutdown -P now
systemd文件
service文件
$ cat cuda.service
[Unit]
Description=cuda
After=network.target local-fs.target
[Service]
Type=simple
ExecStart=/home/renyl/cuda/ld-nvidia-urm.sh
KillMode=process
[Install]
WantedBy=multi-user.target
[renyl@localhost skydiscovery-deploy]$
注: Type支持多种类型,如notify,oneshot,simple,forking等
mount文件
$ cat data.mount
[Unit]
Description=data-lvm mount
After=network.target local-fs.target time-sync.target
[Mount]
What=/dev/vg-data/lv-data
Where=/data
[Install]
WantedBy=multi-user.target