Installing Sysvinit-2.85

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

Approximate build time:  0.1 SBU
Required disk space:     0.9 MB

Official download location for Sysvinit (2.85):
ftp://ftp.cistron.nl/pub/people/miquels/sysvinit/

For its installation Sysvinit depends on: Binutils, Coreutils, GCC, Glibc, Make.

Installation of Sysvinit

When run levels are changed (for example, when halting the system), init sends the TERM and KILL signals to the processes which it started. Init prints "Sending processes the TERM signal" to the screen. This seems to imply that init is sending these signals to all the currently running processes. To avoid this confusion, the init.c file can be modified, so that the sentence reads "Sending processes started by init the TERM signal".

Edit the halt message:

cp src/init.c{,.backup}
sed 's/Sending processes/& started by init/g' \
    src/init.c.backup > src/init.c

Compile Sysvinit:

make -C src

And install it:

make -C src install

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

Contents of Sysvinit

Installed programs: halt, init, killall5, last, lastb (link to last), mesg, pidof (link to killall5), poweroff (link to halt), reboot (link to halt), runlevel, shutdown, sulogin, telinit (link to init), utmpdump and wall

Short descriptions

halt normally invokes shutdown with the -h flag, except when already in runlevel 0, then it tells the kernel to halt the system. But first it notes in the file /var/log/wtmp that the system is being brought down.

init is the mother of all processes. It reads its commands from /etc/inittab, which normally tell it which scripts to run for which runlevel, and how many gettys to spawn.

killall5 sends a signal to all processes, except the processes in its own session -- so it won't kill the shell running the script that called it.

last shows which users last logged in (and out), searching back through the file /var/log/wtmp. It can also show system boots and shutdowns, and runlevel 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.

pidof reports the PIDs of the given programs.

poweroff tells the kernel to halt the system and switch off the computer. But see halt.

reboot tells the kernel to reboot the system. But see halt.

runlevel reports the previous and the current runlevel, as noted in the last runlevel 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 the superuser to log in. It is normally invoked by init when the system goes into single user mode.

telinit tells init which runlevel to enter.

utmpdump displays the content of the given login file in a friendlier format.

wall writes a message to all logged-in users.