Debian 上的 systemd 服务管理
Debian 服务启动/停止/开机自启与日志查看的 systemctl、journalctl 用法,drop-in 覆盖配置的位置,以及与 Ubuntu 的服务名差异。
结论先行
Debian 自 11 起默认用 systemd:所有服务的启停、自启、日志都走 systemctl / journalctl,命令与 Ubuntu 完全一致;差别只在服务清单——Debian 桌面/图形类服务更少,网络安装版尤其精简。
常用命令
systemctl status ssh
sudo systemctl enable --now ssh
sudo systemctl disable --now ssh
sudo systemctl restart ssh
systemctl --failed # 只列失败服务
journalctl -u ssh -e # 该服务日志尾部
journalctl -b # 本次开机以来
文件层次(改了不会被覆盖的关键)
| 位置 | 角色 |
|---|---|
| /lib/systemd/system | 包自带的 unit 文件,不要直接改(升级会覆盖) |
| /etc/systemd/system | 本机定制、drop-in 覆盖 |
systemctl edit <svc> |
为某服务生成 drop-in(推荐改法) |
与 Ubuntu 的差别
- Debian 13.7.0 网络安装版条目 对应最小服务集;DVD-1 条目 多不多取决于安装时勾选的任务集。
- Ubuntu 桌面版默认带更多桌面服务(登录管理器、屏幕锁定等),同一台机器两边行为会略有差异。
- 个别文档里写
sshd的,Debian 里服务名通常是ssh——拿不准就systemctl status查实际名字。
最常见的错误是直接改 /lib 下的 unit 文件:下一次包升级就会被覆盖。用
systemctl edit生成 drop-in。