Difference between revisions of "Automatic login to virtual console"

From ArchWiki
Jump to: navigation, search
(rename header)
(What "security reasons"?...)
Line 32: Line 32:
 
}}
 
}}
 
{{Tip|It is possible to change {{ic|1=Type=idle}} to {{ic|1=Type=simple}} and avoid delaying the execution of agetty until all jobs (state change requests to units) are completed. This option is more useful when [[Start X at Login|starting X automatically]]. See {{ic|man systemd.service}} for more info. {{Note|{{ic|1=Type=simple}} can cause systemd boot-up messages to pollute the login prompt.}}}}
 
{{Tip|It is possible to change {{ic|1=Type=idle}} to {{ic|1=Type=simple}} and avoid delaying the execution of agetty until all jobs (state change requests to units) are completed. This option is more useful when [[Start X at Login|starting X automatically]]. See {{ic|man systemd.service}} for more info. {{Note|{{ic|1=Type=simple}} can cause systemd boot-up messages to pollute the login prompt.}}}}
 
For security reasons, you may also want to change {{ic|1=Restart=always}} to {{ic|1=Restart=no}}.
 
{{Note|Setting {{ic|1=Restart=no}} and 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:
 
Finally, you need to disable the old getty@.service for the specified TTY and enable the new autologin@.service for the same TTY:

Revision as of 14:08, 27 October 2012

Template:Article summary start Template:Article summary text Template:Article summary heading Template:Article summary wiki Template:Article summary wiki Template:Article summary end

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.

Contents

Service

Create a new service file similar to getty@.service by copying it to /etc/systemd/system/:

# cp /usr/lib/systemd/system/getty@.service /etc/systemd/system/autologin@.service
Note: /etc/systemd/system/ takes precedence over /usr/lib/systemd/system/.

Once created you can link the new autologin@.service to your chosen tty, e.g. tty1, tty2, [...] tty8, etc, by specifying it as an alias in the [Install] section of the unit file. Also, change the value of ExecStart in autologin@.service, to end up with something like this:

/etc/systemd/system/autologin@.service
[Service]
[...]
ExecStart=-/sbin/agetty --noclear -a USERNAME %I 38400
[...]
[Install]
Alias=getty.target.wants/getty@tty1.service
Tip: It is possible to change Type=idle to Type=simple and 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.service for more info.
Note: Type=simple can cause systemd boot-up messages to pollute the login prompt.

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
Warning: If you are currently in an X session on the same TTY configured in the service file, starting autologin@ttyX.service will kill your X server.

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