6.53. Sysvinit-2.86

Sysvinit 软件包包含一些控制系统启动、运行、关闭的程序。

预计编译时间: 少于 0.1 SBU
所需磁盘空间: 1 MB

6.53.1. 安装 Sysvinit

当运行级别被改变(比如,正在关闭系统时),init 向那些由 init 自身开启的,并且将不会在新的运行级别里运行的线程发送终端信号。当 init 做上面这些事情时,会输出像 “Sending processes the TERM signal” 这样的信息,这看起来就像它正在向那些系统正在运行的程序发送上面这些信息一样。要避免错误地理解这个信息,可以修改源码以便可以代替为读起来像 “Sending processes configured via /etc/inittab the TERM signal” 的信息,可以用下面命令:

sed -i 's@Sending processes@& configured via /etc/inittab@g' \
    src/init.c

一个 wall 程序的保持版本会在后续 the Util-linux-ng 的安装中被安装。隐藏这个程序和它的 man 手册页的安装:

sed -i -e 's/utmpdump wall/utmpdump/' \
       -e 's/mountpoint.1 wall.1/mountpoint.1/' src/Makefile

编译软件包:

make -C src

这个软件包没有附带测试套件。

安装软件包:

make -C src install

6.53.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 tty1 9600
2:2345:respawn:/sbin/agetty tty2 9600
3:2345:respawn:/sbin/agetty tty3 9600
4:2345:respawn:/sbin/agetty tty4 9600
5:2345:respawn:/sbin/agetty tty5 9600
6:2345:respawn:/sbin/agetty tty6 9600

# End /etc/inittab
EOF

6.53.3. Sysvinit 的内容

安装的程序: bootlogd, halt, init, killall5, last, lastb (link to last), mesg, mountpoint, pidof (link to killall5), poweroff (link to halt), reboot (link to halt), runlevel, shutdown, sulogin, telinit (link to init), and utmpdump

Short Descriptions

bootlogd

把启动信息记录到一个日志文件

halt

正常情况下等效于 shutdown 加上 -h 参数(当前系统运行级别是 0 时除外)。它将告诉内核去中止系统,并在系统正在关闭的过程中将日志记录到 /var/log/wtmp 文件里

init

当内核已经初始化硬件,接管引导程序,开启指令线程时,init 会被第一个启动

killall5

发送一个信号到所有进程,但那些在它自己设定级别的进程将不会被这个运行的脚本所中断

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

以一个多用户友好的方式列出已经给出的登录文件的目录


Host by Alair