Name

init — the several init programs

Description

A command named init is part of the AT&T System 5 Interface Definition. It is specified solely as a control utility. The name of the program run by process #1 is not part of the SVID, and it is not required to be the same program as the init command.

It is recommended that if you wish to retain System 5 habits you get into the habit of using telinit runlevel instead of init runlevel . This is because the latter will sometimes end up invoking /sbin/init and sometimes end up invoking /usr/local/sbin/init.

/usr/local/sbin/init

The nosh toolset's /usr/local/sbin/init is a System 5 compatibility shim that is an alias for telinit(1).

/sbin/init

/sbin/init is not a System 5 compatibility shim, and what program it invokes varies widely.

On the BSDs

/sbin/init is the original BSD init. It has limited System 5 compatibility compared to telinit.

On Linux

/sbin/init points to whatever program is run by process #1. That will be the nosh package's system manager or some other toolset's system manager. On Debian-family Linux operating systems, the (not universally implemented across all relevant packages) convention is for /sbin/init to be a symbolic link to the actual system manager program.

Several toolsets do not provide System 5 compatibility when /sbin/init is run other than as process #1. Upstart, for example, starts up a "session init" in this situation. Similarly, in the nosh toolset case, /sbin/init becomes system-manager(1) as process #1 and per-user-manager(1) otherwise. Neither is designed to provide System 5 compatibility init functionality.

Author

Jonathan de Boyne Pollard