努力
加油

Ubuntu Server默认使用哪个init系统或服务管理器?

Ubuntu Server 目前默认使用的是 systemd。

这个转变其实是一个渐进的过程,如果你关注 Ubuntu 的版本迭代历史,会发现关键的时间节点:

  1. Ubuntu 15.04 及之后版本:从 2015 年发布的 Vivid Vervet (15.04) 开始,Canonical 正式将 systemd 作为默认的 init 系统和服务管理器,取代了之前的 Upstart。
  2. 早期版本(Upstart):在 15.04 之前,特别是 Ubuntu 14.04 LTS 及其更早版本,默认使用的是 Upstart。Upstart 是 Canonical 自己开发的事件驱动型 init 系统,它在当时解决了 SysVinit 的一些痛点,但在处理复杂依赖和服务状态管理上逐渐显得力不从心。
  3. 更早期的版本(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。