6.62. Sysvinit-2.88dsf

The Sysvinit package contains programs for controlling the startup, running, and shutdown of the system.

Approximate build time: less than 0.1 SBU
Required disk space: 1 MB

6.62.1. Installation of Sysvinit

When run-levels are changed (for example, when halting the system), init sends termination signals to those processes that init itself started and that should not be running in the new run-level. While doing this, init outputs messages like “Sending processes the TERM signal” which seem to imply that it is sending these signals to all currently running processes. To avoid this misinterpretation, modify the source so that these messages read like “Sending processes configured via /etc/inittab the TERM signal” instead:

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

A maintained version of the wall program was installed earlier by Util-linux-ng. Suppress the installation of Sysvinit's version of this program and its man page:

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

Compile the package:

make -C src

This package does not come with a test suite.

Install the package:

make -C src install

6.62.2. Configuring Sysvinit

Create a new file /etc/inittab by running the following:

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.62.3. Contents of Sysvinit

Installed programs: bootlogd, fstab-decode, 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

Logs boot messages to a log file

fstab-decode

Run a command with fstab-encoded arguments

halt

Normally invokes shutdown with the -h option, except when already in run-level 0, then it tells the kernel to halt the system; it notes in the file /var/log/wtmp that the system is being brought down

init

The first process to be started when the kernel has initialized the hardware which takes over the boot process and starts all the proceses it is instructed to

killall5

Sends a signal to all processes, except the processes in its own session so it will not kill the shell running the script that called it

last

Shows which users last logged in (and out), searching back through the /var/log/wtmp file; it also shows system boots, shutdowns, and run-level changes

lastb

Shows the failed login attempts, as logged in /var/log/btmp

mesg

Controls whether other users can send messages to the current user's terminal

mountpoint

Checks if the directory is a mountpoint

pidof

Reports the PIDs of the given programs

poweroff

Tells the kernel to halt the system and switch off the computer (see halt)

reboot

Tells the kernel to reboot the system (see halt)

runlevel

Reports the previous and the current run-level, as noted in the last run-level record in /var/run/utmp

shutdown

Brings the system down in a secure way, signaling all processes and notifying all logged-in users

sulogin

Allows root to log in; it is normally invoked by init when the system goes into single user mode

telinit

Tells init which run-level to change to

utmpdump

Displays the content of the given login file in a more user-friendly format