A getty is the generic name for a program which manages a terminal line and its connected terminal. Its purpose is to protect the system from unauthorized access. Generally, each getty process is started by systemd and manages a single terminal line.
agetty is the default getty in Arch Linux, as part of the
- mingetty — A minimal getty which allows automatic logins.
- AUR || AUR
- fbgetty — A console getty like mingetty, which supports framebuffers.
- mgetty — A versatile program to handle all aspects of a modem under Unix.
- http://mgetty.greenie.net/ || AUR
Add additional virtual consoles
Open the file
/etc/systemd/logind.conf and set the option NAutoVTs=6 to the number of virtual terminals that you want at boot.
If you wish to start one temporarily, you can start a getty service at the desired TTY by typing:
$ systemctl start getty@ttyN.service
Automatic login to virtual console
Configuration relies on systemd drop-in files to override the default parameters passed to agetty.
Configuration differs for virtual versus serial consoles. In most cases, you want to set up automatic login on a virtual console, (whose device name is
N is a number). The configuration of automatic login for serial consoles will be slightly different. Device names of the serial consoles look like
N is a number.
Edit the provided unit either manually by creating the following drop-in snippet, or by running
systemctl edit getty@tty1 and pasting its content:
[Service] ExecStart= ExecStart=-/usr/bin/agetty --autologin username --noclear %I $TERM
Type=idlefound in the default
getty@.servicewill delay the service startup until all jobs (state change requests to units) are completed in order to avoid polluting the login prompt with boot-up messages. When starting X automatically, it may be useful to start
email@example.com by adding
Type=simpleinto the drop-in snippet. Both the init system and startx can be silenced to avoid the interleaving of their messages during boot-up.
If you don't want full automatic login, but also don't want to type your username, you can replace
--autologin username with
--skip-login --login-options username.
If you want to use a tty other than tty1, see systemd FAQ.
Create the following file (and leading directories):
[Service] ExecStart= ExecStart=-/usr/bin/agetty --autologin username -s %I 115200,38400,9600 vt102
To configure auto-login for a systemd-nspawn container, override
[Service] ExecStart= ExecStart=-/sbin/agetty --noclear --autologin username --keep-baud console 115200,38400,9600 $TERM
machinectl login my-container method is used to access the container, also add
--autologin username to
container-getty@.service template that manages
pts/[0-9] pseudo ttys:
[Service] ExecStart= ExecStart=-/sbin/agetty -o '-p -- \\u' --noclear --autologin username --keep-baud pts/%I 115200,38400,9600 $TERM
Prompt only the password for a default user in virtual console login
Getty can be used to login from a virtual console with a default user, typing the password but without needing to insert the username. For instance, to prompt the password for
[Service] ExecStart= ExecStart=-/sbin/agetty -n -o username %I
# systemctl enable getty@tty1
Have boot messages stay on tty1
By default, Arch has the
getty@tty1 service enabled. The service file already passes
--noclear, which stops agetty from clearing the screen. However systemd clears the screen before starting it. To disable this behavior, create
This overrides only
TTYVTDisallocate for agetty on TTY1, and leaves the global service file
/usr/lib/systemd/system/getty@.service untouched. See Systemd#Editing provided units.