近年来,Linux 系统的 init 进程经历了两次重大的演进,传统的 sysvinit 已经逐渐淡出历史舞台,新的 UpStart 和 systemd 各有特点,越来越多的 Linux 发行版采纳了 systemd。本文简要介绍了这三种 init 系统的使用和原理,每个 Linux 系统管理员和系统软件开发者都应该了解它们,以便更好地管理系统和开发应用。
浅析 Linux 初始化 init 系统,第 1 部分: sysvinit
浅析 Linux 初始化 init 系统,第 2 部分: UpStart
浅析 Linux 初始化 init 系统,第 3 部分: Systemd
Systemd主要的设计目标是克服传统Linux主流启动程序SysVinit 固有的缺点,提高系统的启动速度。相比同类的 SysVinit 竞争者,例如Ubuntu 的 upstart,Systemd 的设计更加前卫,简单来说,它的设计思路借鉴了Mac系统的启动程序Launchd。事实上Systemd的作用远不仅是启动系统,它还接管了系统服务的启动、结束、状态查询和日志归档等职责,并支持定时任务和通过特定事件(如插入特定USB设备)和特定端口数据触发的任务。