Difference between revisions of "Automatic login to virtual console"

From ArchWiki
Jump to: navigation, search
m (Service)
m (Use drop-in feature of systemd for getty autologin: surrounds code in ic blocks, see Help:Style)
(19 intermediate revisions by 10 users not shown)
Line 7: Line 7:
 
{{Article summary heading|Related}}
 
{{Article summary heading|Related}}
 
{{Article summary wiki|Display Manager}}
 
{{Article summary wiki|Display Manager}}
 +
{{Article summary wiki|Silent boot}}
 
{{Article summary wiki|Start X at Login}}
 
{{Article summary wiki|Start X at Login}}
 
{{Article summary end}}
 
{{Article summary end}}
Line 12: Line 13:
 
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 [[Xorg|X server]] are described in [[Start X at Login]].
 
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 [[Xorg|X server]] are described in [[Start X at Login]].
  
== Service ==
+
== Installation ==
Create a new service file similar to {{ic|getty@.service}} by copying it to {{ic|/etc/systemd/system/}}:
+
=== Use drop-in feature of systemd for getty autologin ===
 +
First create a new directory named {{ic|getty@tty1.service.d}} under {{ic|/etc/systemd/system}}:
  
  # cp /usr/lib/systemd/system/getty@.service /etc/systemd/system/autologin@.service
+
  # mkdir /etc/systemd/system/getty@tty1.service.d
  
{{Note|{{ic|/etc/systemd/system/}} takes precedence over {{ic|/usr/lib/systemd/system/}}.}}
+
Then create a new file named {{ic|autologin.conf}} and add it into the directory:
  
Then change the {{ic|ExecStart}} line to have the {{ic|-a ''USERNAME''}} option:
+
{{hc|/etc/systemd/system/getty@tty1.service.d/autologin.conf|
 
+
{{hc|/etc/systemd/system/autologin@.service|
+
 
2=[Service]
 
2=[Service]
''[...]''
+
ExecStart=
ExecStart=-/sbin/agetty --noclear -a ''USERNAME'' %I 38400
+
ExecStart=-/usr/bin/agetty --autologin <username> --noclear %I 38400 linux
''[...]''
+
 
+
[Install]
+
WantedBy=getty.target
+
 
}}
 
}}
  
{{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|The option {{ic|1=Type=idle}} will delay the execution of agetty until all jobs (state change requests to units) are completed. On the other hand it may cause systemd boot-up messages to pollute the login prompt. This option is more useful when [[Start X at Login|starting X automatically]]. See {{ic|man systemd.service}} for more info.}}
  
Finally, you need to disable the old {{ic|getty@tty''X''.service}} for the specified tty and enable the new {{ic|autologin@tty''X''.service}}. For example,
+
By default, {{ic|getty@.service}} uses {{ic|1=Type=idle}}. If you want to use {{ic|1=Type=simple}}, then your {{ic|autologin.conf}} should look like this:
# 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 {{ic|autologin@tty''X''.service}} will kill your X server.}}
+
{{hc|/etc/systemd/system/getty@tty1.service.d/autologin.conf|
 +
2=[Service]
 +
ExecStart=
 +
ExecStart=-/usr/bin/agetty --autologin <username> --noclear %I 38400 linux
 +
Type=simple
 +
}}
  
To avoid errors related to display-manager.service in dmesg, you should set the default target to multi-user instead of graphical:
+
== Tips & Tricks ==
 +
 
 +
=== Avoiding unnecessary dmesg errors ===
 +
To avoid errors related to {{ic|display-manager.service}} in dmesg, you should set the default target to multi-user instead of graphical:
 
  # systemctl enable multi-user.target
 
  # systemctl enable multi-user.target
(See also: [[Systemd#Change_default_target_to_boot_into|Change default runlevel/target to boot into]].)
+
 
 +
==See also==
 +
* [[Systemd#Change_default_target_to_boot_into|Change default runlevel/target to boot into]].

Revision as of 22:16, 13 August 2013

Template:Article summary start Template:Article summary text Template:Article summary heading Template:Article summary wiki 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 Login.

Installation

Use drop-in feature of systemd for getty autologin

First create a new directory named getty@tty1.service.d under /etc/systemd/system:

# mkdir /etc/systemd/system/getty@tty1.service.d

Then create a new file named autologin.conf and add it into the directory:

/etc/systemd/system/getty@tty1.service.d/autologin.conf
[Service]
ExecStart=
ExecStart=-/usr/bin/agetty --autologin <username> --noclear %I 38400 linux
Tip: The option Type=idle will delay the execution of agetty until all jobs (state change requests to units) are completed. On the other hand it may cause systemd boot-up messages to pollute the login prompt. This option is more useful when starting X automatically. See man systemd.service for more info.

By default, getty@.service uses Type=idle. If you want to use Type=simple, then your autologin.conf should look like this:

/etc/systemd/system/getty@tty1.service.d/autologin.conf
[Service]
ExecStart=
ExecStart=-/usr/bin/agetty --autologin <username> --noclear %I 38400 linux
Type=simple

Tips & Tricks

Avoiding unnecessary dmesg errors

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