我们主要是通过 systemctl 和 systemd 做交互,我们可以打开和关掉服务,展示状态 和 重新加载 配置。
systemctl list-units 是列出正在运行的单元
输出的格式:
--full 显示 单元的全称; --all 显示所有状态(active or inactive)的单元
查状态的 systemctl 命令是很有用的:
systemctl status 不仅显示状态,也显示日志。
systemctl status 对 其他的单元类型(比如: mount 和 target) 也包含类似的 信息。
有部分是显示 cgroup(control group)
journalctl --unit=redis 查看 单元的 所有日志。
systemctl start/stop/restart/reload 单元名 /daemon-reload(reload all)
在 systemd 里,start,stop 和 restart 都称作 jobs,他们改变单元的状态。
systemd list-jobs 列出任务。
如果系统已经启动有段时间了,就不会有运行中的jobs。快速登入可以看到 启动很慢的 单元 jobs。
76 job 正在启动,其他的 job 是等待状态,很可能是等待 76 启动完毕。当 sendemail.service 启动完毕,状态为 active,76 job 就会消失。
给 systemd 添加 单元
添加单元 到 systemd 就是 创建,启动和 enable 单元文件。一般是在 系统配置目录下/etc/systemd/system。
target 单元简单,先试 目标单元。建两个 目标单元,一个 依赖 另一个。
test1.target
test2.target
如果单元文件 里 有 [install],你在启动 单元前,需要先 enable 它。install 表示 依赖。
从systemd里,删除单元
先停止:
# systemctl stop unit
再disable,如果需要的话(单元文件里 包含 [Install])
# systemctl disable unit
然后就可以删除了