ttys file contains information that is
used by various routines to initialize and control the use of terminal
special files. This information is read with the
getttyent(3) library routines.
There is one line in the
ttys file per
special device file. Fields are separated by tabs and/or spaces. Fields
comprised of more than one word should be enclosed in double quotes
"’). Blank lines and comments
may appear anywhere in the file; comments are delimited by hash marks
#’) and newlines. Any unspecified
fields will default to null.
Each line in
ttys is of the format:
tty command type flags
The first field is the name of the terminal special file as it is found in /dev.
The second field is the command to execute for the line, usually getty(8), which initializes and opens the line, setting the speed, waiting for a user name and executing the login(1) utility. It can be, however, any desired command, for example the start up for a window system terminal emulator or some other daemon process, and can contain multiple words if quoted.
The third field is the type of terminal usually connected to that
tty line, normally the one found in the
terminfo(5) database file. The environment variable
TERM is initialized with the value by either
The remaining fields set flags in the ty_status entry (see getttyent(3)) or specify a window system process that init(8) will maintain for the terminal line. The following is a list of permitted flags for each tty:
- Specify that init(8) should execute the command given in the second field.
- The opposite of on.
- If on is also specified, allows users with a user ID of 0 to log in on this line. If set for the console entry, then init(8) will start a single-user shell without asking for the superuser password.
Additionally, the following flags modify the default behavior of the terminal line. Some of these flags may not be supported by a terminal line driver. The flag fields should not be quoted.
- Treat the line as if it is locally connected.
- Use RTS/CTS hardware flow control, if possible.
- Use DTR/DCD flow control if possible.
- Ignore hardware carrier on the line.
The string window= may be followed by a quoted command string which init(8) will execute before starting the command specified by the second field.
Changes to the
ttys file take
effect after it has been reloaded by
init(8), which can be triggered by sending it a
HUP signal. Reloading the
ttys file does
not change the state
of the device-specific terminal flags described above. The
ttyflags(8) utility can be used to set those flags.
# root login on console at 1200 baud console "/usr/libexec/getty std.1200" vt100 on secure # dialup at 1200 baud, no root logins ttyd0 "/usr/libexec/getty d1200" dialup on # 555-1234 # Mike's terminal: hp2621 ttyh0 "/usr/libexec/getty std.9600" hp2621-nl on # 457 Evans # John's terminal: vt100 ttyh1 "/usr/libexec/getty std.9600" vt100 on # 459 Evans # terminal emulate/window system ttyv0 "/usr/new/xterm -L :0" vs100 on window="/usr/new/Xvs100 0" # Network pseudo ttys -- don't enable getty ttyp0 none network ttyp1 none network off
login(1), getttyent(3), ttyslot(3), gettytab(5), termcap(5), getty(8), init(8), ttyflags(8)
ttys file appeared in
Version 5 AT&T UNIX.