是由 System V 开发的 init 程序,较为古老。

Runlevels

SysV Init 通过运行级别(runlevels)来控制系统的状态和服务的启动与关闭。存在如下运行级别:

  • 0: 关机
  • 1: 单用户模式(用于维护)
  • 2: 多用户模式(不带网络)
  • 3: 完整多用户模式(带网络)
  • 4: 用户自定义
  • 5: 图形化模式
  • 6: 重启

每个运行级别是互斥的,所以其实服务的控制粒度比较粗。

配置文件

SysV Init 依赖 Linux/Unix 文件系统的概念就完成了配置。配置文件如下:

  • /etc/init.d: 每个服务在 /etc/init.d/ 目录下有一个 shell 启动脚本,也有可能存在终止脚本。
  • /etc/rc.d/rc*.d/: 不同运行等级所代表的脚本目录。里面是一堆符号链接,链接到 /etc/init.d/ 下,符号链接的文件名同样有格式, S 表示启动, K 表示关闭,后面的数字表示优先级(启动顺序)。
  • /etc/inittab: 定义默认运行级别和启动过程中要执行的动作。

基于这样一套文件系统的组织形式和命名规范, SysV Init 建立了一套基于运行级别的,避免重复的,有优先级的,可启动可关闭的初始化配置系统。

常用命令

  • init [runlevel]: 切换到指定的运行级别。
  • runlevel: 当前运行级别
  • chkconfig [service] [on|off]: 管理服务在不同运行级别的启用状态(就是在系统启动时是否会启动服务)。
  • service [service] [start|stop|restart|status]: 管理服务的状态。