Ubuntu Server 目前默认使用的是 systemd。
这个转变其实是一个渐进的过程,如果你关注 Ubuntu 的版本迭代历史,会发现关键的时间节点:
- Ubuntu 15.04 及之后版本:从 2015 年发布的 Vivid Vervet (15.04) 开始,Canonical 正式将 systemd 作为默认的 init 系统和服务管理器,取代了之前的 Upstart。
- 早期版本(Upstart):在 15.04 之前,特别是 Ubuntu 14.04 LTS 及其更早版本,默认使用的是 Upstart。Upstart 是 Canonical 自己开发的事件驱动型 init 系统,它在当时解决了 SysVinit 的一些痛点,但在处理复杂依赖和服务状态管理上逐渐显得力不从心。
- 更早期的版本(SysVinit):在 Upstart 之前,Ubuntu 使用的是传统的 System V init 系统。
为什么现在都是 systemd?
- 标准化与兼容性:systemd 已经成为 Linux 发行版的事实标准(RHEL、Debian、Fedora 等主流发行版均采用),使用 systemd 能让工具链、文档和社区支持更加统一。
- 功能强大:它提供了并行启动服务、自动依赖管理、日志记录(journald)、核心守护进程管理等强大功能。
- 生态系统整合:现代 Linux 服务器运维中,许多监控、容器化(如 Docker/Kubernetes 底层依赖)和安全工具都深度集成或优化了对 systemd 的支持。
如何验证你当前系统的 init 系统?
你可以登录到一台 Ubuntu Server 终端,执行以下命令来确认:
ps -p 1 -o comm=
如果输出是 systemd,则说明当前使用的是 systemd。
或者查看服务管理器的版本信息:
systemctl --version
注意:
虽然 systemd 是默认且推荐的,但 Ubuntu 依然保留了对旧式服务的兼容能力。不过,对于新的部署和运维实践,强烈建议直接使用 systemctl 命令来管理服务(启动、停止、重启、设置开机自启等),而不是去手动修改 /etc/init.d/ 下的脚本或使用 service 命令(尽管 service 命令在后端仍会调用 systemd)。
总结:当前所有主流版本的 Ubuntu Server(16.04, 18.04, 20.04, 22.04, 24.04 等)均默认使用 systemd。
云技术博客