OpenBSD manual page server

Manual Page Search Parameters

TTYS(5) File Formats Manual TTYS(5)

ttysterminal initialization information

The 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.

The first field is the name of the terminal special file as it is found in /dev.

The second field of the file 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) program. 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 termcap(5) database file. The environment variable TERM is initialized with the value by either getty(8) or login(1).

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 UID 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 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.


# 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)

A ttys file appeared in Version 5 AT&T UNIX.

February 8, 2020 OpenBSD-6.9