kernel virtual terminals

BSD systems provide virtual terminals on devices /dev/ttyv0 to /dev/ttyv8. Linux systems provide virtual terminals on /dev/tty1 to /dev/tty12.

Their ttylogin services can of course be managed just like ordinary services. The preset command uses the ordinary preset file mechanism, but can also read the /etc/ttys file.

Linux tools for ttylogin service management on demand

On the BSDs, enabled ttylogin@ services are started at bootstrap in the ordinary way, as they are wanted-by/ the multi-user target.

However, on Linux these services are not wanted-by/ any bootstrap-activated target. Instead, they are activated on demand by the ttylogin-starter tool. This utility, for which there is a service bundle allowing one to run it itself as a service, starts ttylogin services, as long as they are marked enabled, as and when the user switches between kernel virtual terminals.

Leaving room for X

An X server needs a virtual terminal allocated to it for the same reason that console-fb-realizer does: interlocking the use of the framebuffer and input event subsystem with the kernel's terminal emulator program. So if using kernel virtual terminals alongside an X server, either one starts the server directly from a login session on one of those terminals, or one reserves a virtual terminal for the X server.

To do this, one simply disables the service. There are three ways to do this: