6.56. Sysvinit-2.86

Sysvinit 软件包包含用于控制系统启动、运行和关机的程序。

预计构建时间: 0.1 SBU
所需磁盘空间: 1012 KB
安装依赖于: Binutils、Coreutils、GCC、Glibc 和 Make

6.56.1. Sysvinit 的安装

当运行级别更改时(例如,当停止系统时),init 会向那些由 init 自身启动且不应在新运行级别中运行的进程发送终止信号。 在执行此操作时,init 会输出类似 “Sending processes the TERM signal” 的消息,这似乎暗示它正在向所有当前正在运行的进程发送这些信号。 为了避免这种误解,请修改源代码,使这些消息读起来像 “Sending processes started by init the TERM signal” 这样。

sed -i 's@Sending processes@& started by init@g' \
    src/init.c

编译软件包

make -C src

安装软件包

make -C src install

6.56.2. 配置 Sysvinit

创建一个新文件/etc/inittab通过运行以下命令

cat > /etc/inittab << "EOF"
# Begin /etc/inittab

id:3:initdefault:

si::sysinit:/etc/rc.d/init.d/rc sysinit

l0:0:wait:/etc/rc.d/init.d/rc 0
l1:S1:wait:/etc/rc.d/init.d/rc 1
l2:2:wait:/etc/rc.d/init.d/rc 2
l3:3:wait:/etc/rc.d/init.d/rc 3
l4:4:wait:/etc/rc.d/init.d/rc 4
l5:5:wait:/etc/rc.d/init.d/rc 5
l6:6:wait:/etc/rc.d/init.d/rc 6

ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -r now

su:S016:once:/sbin/sulogin

1:2345:respawn:/sbin/agetty -I '\033(K' tty1 9600
2:2345:respawn:/sbin/agetty -I '\033(K' tty2 9600
3:2345:respawn:/sbin/agetty -I '\033(K' tty3 9600
4:2345:respawn:/sbin/agetty -I '\033(K' tty4 9600
5:2345:respawn:/sbin/agetty -I '\033(K' tty5 9600
6:2345:respawn:/sbin/agetty -I '\033(K' tty6 9600

# End /etc/inittab
EOF

-I '\033(K' 选项告诉 agetty 在执行任何其他操作之前,向终端发送此转义序列。 此转义序列将控制台字符集切换为用户定义的字符集,可以通过运行 setfont 程序来修改。 来自 LFS-Bootscripts 软件包的 console initscript 在系统启动期间调用 setfont 程序。 发送此转义序列对于使用非 ISO 8859-1 屏幕字体的人员是必要的,但它不会影响以英语为母语的人。

6.56.3. Sysvinit 的内容

已安装的程序: halt、init、killall5、last、lastb(链接到 last)、mesg、pidof(链接到 killall5)、poweroff(链接到 halt)、reboot(链接到 halt)、runlevel、shutdown、sulogin、telinit(链接到 init)、utmpdump 和 wall

简短描述

halt

通常使用 -h 选项调用 shutdown,除非已处于运行级别 0,否则它会告诉内核停止系统; 它在文件/var/log/wtmp中记录系统正在关闭

init

内核初始化硬件后启动的第一个进程,它接管启动过程并启动所有被指示的进程

killall5

向所有进程发送信号,除了它自身会话中的进程,因此它不会杀死运行调用它的脚本的 shell

last

显示哪些用户最后登录(和注销),在/var/log/wtmp文件中向后搜索;它还显示系统启动、关机和运行级别更改

lastb

显示失败的登录尝试,记录在/var/log/btmp

mesg

控制其他用户是否可以向当前用户的终端发送消息

mountpoint

检查目录是否为挂载点

pidof

报告给定程序的 PID

poweroff

告诉内核停止系统并关闭计算机(参见 halt)

reboot

告诉内核重启系统(参见 halt)

runlevel

报告上一个和当前的运行级别,记录在/var/run/utmp

shutdown

以安全的方式关闭系统,向所有进程发送信号并通知所有已登录的用户

sulogin

允许 root 用户登录;当系统进入单用户模式时,通常由 init 调用

telinit

告诉 init 要更改为哪个运行级别

utmpdump

以更友好的用户格式显示给定登录文件的内容

wall

向所有已登录的用户写入消息