Terminal initialization


tinit [-f file] [-pt] [env_var=value...]

Runs on:



-f file
The configuration file that defines the commands to start (see below). The default is /etc/config/ttys.
Start Photon.
Don't mask the suspend signal (SIGTSTP) in spawned process.
Set the environment variable env_var to value and add it to the environment.


The tinit utility lets you bring up login (or other programs) on devices. You normally use tinit to invoke login on the console(s) and serial terminals.

The tinit utility runs as a background process, and is nearly always started in the /etc/rc.d/rc.sysinit file. If /etc/system/config/nophoton doesn't exist on your system, the default rc.sysinit starts tinit with the -p option.

After creating the specified programs as its children, tinit waits for any of them to terminate. When one of these commands terminates, tinit re-invokes the command on that device.

For example, let's assume that tinit started a login on /dev/con1. After logging in, the user is presented with a shell. Then, after executing any number of commands, the user decides to terminate the shell. At this point, tinit detects the termination and starts a new login on /dev/con1.

ttys configuration file

The tinit utility refers to a configuration file (/etc/config/ttys or the file you specified with the -f option) to obtain information about your terminal devices and the commands you want to start on them. This file contains lines of text, each line containing four fields that give the configuration information for one device, like this:

con1 "/bin/login" qansi-m on

Here's what the fields in this example define:

The first field is the device name. Unless you define a complete pathname, starting with / (slash), tinit adds the prefix /dev/ to the name. This example defines the device name as /dev/con1. If you wanted to specify a terminal connected to a serial port, this field might read ser1.
The second field contains a string that specifies the pathname of the command to be started on the device. This command can be anything you like; most often it will be either login, as in this default example, or photon.
The third field describes the terminal type. You can find a list of the terminal types you can specify in /usr/lib/terminfo.
The fourth and last field is currently ignored by tinit. It is there for possible future expansion.

The parsing of this file is fairly simple:

Note: The tinit utility is the root of all logins, so any environment variables it sets will be inherited; this makes the tinit command line a convenient place for you to set the environment variables you need, using the env_var options.


The terminal configuration file used by tinit.

See also:

diskboot, login, phlogin

Controlling How Neutrino Starts in the Neutrino User's Guide