Installing Sysvinit-2.84

Estimated build time:           0.06 SBU
Estimated required disk space:  1 MB

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", by running the following commands. If you don't want to change it, skip it.

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

Install Sysvinit by running the following commands:

make -C src &&
make -C src install

Contents of Sysvinit

Last checked against version 2.84.

Program Files

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

Descriptions

halt

halt notes that the system is being brought down in the file /var/log/wtmp, and then either tells the kernel to halt, reboot or poweroff the system. If halt or reboot is called when the system is not in runlevel 0 or 6, shutdown will be invoked instead (with the flag -h or -r).

init

init is the parent of all processes. Its primary role is to create processes from a script stored in the file /etc/inittab. This file usually has entries which cause init to spawn gettys on each line that users can log in. It also controls autonomous processes required by any particular system.

killall5

killall5 is the SystemV killall command. It sends a signal to all processes except the processes in its own session, so it won't kill the shell that is running the script it was called from.

last

last searches back through the file /var/log/wtmp (or the file designated by the -f flag) and displays a list of all users logged in (and out) since that file was created.

lastb

lastb is the same as last, except that by default it shows a log of the file /var/log/btmp, which contains all the bad login attempts.

mesg

mesg controls the access to the user's terminal by others. It's typically used to allow or disallow other users to write to his terminal.

pidof

pidof displays the process identifiers (PIDs) of the named programs.

poweroff

poweroff is equivalent to shutdown -h -p now. It halts the computer and switches off the computer (when using an APM compliant BIOS and APM is enabled in the kernel).

reboot

reboot is equivalent to shutdown -r now. It reboots the computer.

runlevel

runlevel reads the system utmp file (typically /var/run/utmp) to locate the runlevel record, and then prints the previous and current system runlevel on its standard output, separated by a single space.

shutdown

shutdown brings the system down in a secure way. All logged-in users are notified that the system is going down, and login is blocked.

sulogin

sulogin is invoked by init when the system goes into single user mode (this is done through an entry in /etc/inittab). Init also tries to execute sulogin when it is passed the -b flag from the boot loader (LILO, for example).

telinit

telinit sends appropriate signals to init, telling it which runlevel to change to.

utmpdump

utmpdumps prints the content of a file (usually /var/run/utmp) on standard output in a user friendly format.

wall

wall sends a message to everybody logged in with their mesg permission set to yes.

Sysvinit Installation Dependencies

Last checked against version 2.84.

Bash: sh
Binutils: as, ld
Fileutils: chown, cp, install, ln, mknod, rm
Gcc: cc, cc1, collect2, cpp0
Make: make
Sed: sed