init
Keywords: sag

Next: Logins from terminals Up: Major services in a Previous: Major services in a

## `init`

The single most important service in a UNIX system is provided by `init` . `init` is started as the first process of every UNIX system, as the last thing the kernel does when it boots. When `init` starts, it continues the boot process by doing various startup chores (checking and mounting filesystems, starting daemons, etc).

The exact list of things that `init` does depends on which flavor it is; there are several to choose from. `init` usually provides the concept of single user mode, in which no one can log in and `root` uses a shell at the console; the usual mode is called multiuser mode. Some flavors generalize this as run levels; single and multiuser modes are considered to be two run levels, and there can be additional ones as well, for example, to run X on the console.

In normal operation, `init` makes sure `getty` s are working (to allow users to log in), and to adopt orphan processes (processes whose parent has died; in UNIX all processes must be in a single tree, so orphans must be adopted).

When the system is shut down, it is `init` that is in charge of killing all other processes, unmounting all filesystems and stopping the processor, along with anything else it has been configured to do.