init 8 administrator commands nosh
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, not as the program run by process #1. 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 at all 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. It is not the program run by process #1, and it is the SVID `init` command.

### `/sbin/init`

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

#### On the BSDs

`/sbin/init` is the original BSD init 8, the program run by process #1 when not using the nosh toolset's system manager. It can also be run other than process #1, to be used as the SVID `init` command to an extent; but 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, and this is not the SVID `init` command. 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. systemd, as built on some Linux operating systems, does not provide a `telinit` shim in `/usr/lib/systemd/systemd` (systemd's `telinit` shim being rather in its `systemctl` program). None of these is designed to provide System 5 compatibility `init` functionality.

## Author

Jonathan de Boyne Pollard