在较新的 Linux 发行版中,你会发现一个事实:service 命令越来越少见,取而代之的是 systemctl。这背后的核心,就是 systemd。如果你还停留在“能启动服务但不理解 systemd”,那运维和排错时会非常吃力。本文将用最实用的方式,带你快速掌握 systemd 的使用方法。
一、什么是 systemd?
systemd 是 Linux 的系统和服务管理器,负责:简单理解:systemd 是系统的总管,而 service 只是它的一个外壳。二、服务(Unit)的基本概念
在 systemd 中,一切被称为Unit,常见类型包括:
三、最常用的 systemctl 命令
是否运行
主进程 PID
最近错误日志
四、开机自启动管理
注意:enable 不等于 start,两者作用不同。五、查看系统中的服务
systemctl list-units --type=service
systemctl list-unit-files --type=service
六、日志管理:journalctl
systemd 将日志统一交给 journald 管理。七、自定义一个服务(这里以我自己配置的trojan服务为例)
[Unit]Description=Trojan ServiceAfter=network.target[Service]Type=simpleUser=rootWorkingDirectory=/root/trojanExecStart=/root/trojan/trojan-go -config /root/trojan/config.jsonRestart=on-failureRestartSec=5[Install]WantedBy=multi-user.target
保存为:/etc/systemd/system/trojan.servicesystemctl daemon-reloadsystemctl start trojan
八、systemd 使用建议
修改 unit文件后一定执行 daemon-reload不要手动 kill 进程,交给 systemd 管理九、写在最后
systemd 并不复杂,难的是“不理解它的管理方式”。一旦你习惯用 systemctl 管理服务,Linux 运维会变得清晰而可控。学会 systemd,是现代 Linux 的必修课。