Automatic login to virtual console
This article describes how to automatically log in to a virtual console at the end of the boot process. This article only covers console log-ins; methods for starting an X server are described in Start X at Boot.
With default init
Create a new service file similar to
getty@.service by copying it to
# cp /usr/lib/systemd/system/getty@.service /etc/systemd/system/autologin@.service
/etc/systemd/system/takes precedence over
Once created you can link the new
autologin@.service to your chosen tty, e.g.
tty8, etc, by specifying it as an alias in the
[Install] section of the unit file. Also, change the value of
autologin@.service, to end up with something like this:
[Service] [...] ExecStart=-/sbin/agetty --noclear -a USERNAME %I 38400 [...] [Install] Aliasemail@example.com
Type=simpleand avoid delaying the execution of agetty until all jobs (state change requests to units) are completed. This option is more useful when starting X automatically. See
man systemd.servicefor more info.
Type=simplecan cause systemd boot-up messages to pollute the login prompt.
For security reasons, you may also want to change
Restart=noand logging out of the virtual console will cause the virtual console to become unresponsive.
Finally, you need to disable the old getty@.service for the specified TTY and enable the new autologin@.service for the same TTY:
# systemctl daemon-reload # systemctl disable getty@tty1 # systemctl enable autologin@tty1 # systemctl start autologin@tty1
To avoid errors related to display-manager.service in dmesg, you should set the default target to multi-user instead of graphical:
# systemctl enable multi-user.target
(See also: Change default runlevel/target to boot into.)