systemd 与 sysvinit 的差异与迁移

结论先行

现代 Linux 发行版基本都用 systemd:并行启动、依赖管理、日志和服务生命周期更完整。sysvinit 简单直观,但功能有限,主要用于老系统或极简环境。

核心差异

维度 systemd sysvinit
启动模型 unit 依赖图,并行启动 顺序执行 init 脚本
服务定义 .service unit /etc/init.d/ 脚本
日志 journald 统一收集 各服务自己写日志
运行级别 target runlevel
进程监督 自动重启、cgroup 跟踪 需额外工具
兼容 提供 sysv 兼容层 不支持 systemd unit

怎么选

注意

systemctl status app
systemctl enable --now app
systemctl daemon-reload
journalctl -u app -f
systemctl list-dependencies app

相关命令