Difference between revisions of "Automatic login to virtual console"

From ArchWiki
Jump to: navigation, search
(Killing X: flagged with Template:accuracy)
(simplification and beautification of wikilinks, fixing whitespace, capitalization and section fragments (https://github.com/lahwaacz/wiki-scripts/blob/master/link-checker.py (interactive)))
 
(56 intermediate revisions by 29 users not shown)
Line 2: Line 2:
 
[[Category:Security]]
 
[[Category:Security]]
 
[[es:Automatic login to virtual console]]
 
[[es:Automatic login to virtual console]]
 +
[[fr:Connexion automatique a la console]]
 
[[it:Automatic login to virtual console]]
 
[[it:Automatic login to virtual console]]
{{Article summary start}}
+
[[ja:仮想端末に自動ログイン]]
{{Article summary text|Describes how to automatically log in to a virtual console.}}
+
[[ru:Automatic login to virtual console]]
{{Article summary heading|Related}}
+
{{Related articles start}}
{{Article summary wiki|Display Manager}}
+
{{Related|Display manager}}
{{Article summary wiki|Silent boot}}
+
{{Related|Silent boot}}
{{Article summary wiki|Start X at Login}}
+
{{Related|Start X at login}}
{{Article summary end}}
+
{{Related articles 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 [[Xorg|X server]] are described in [[Start X at Login]].
+
This article describes how to automatically log in to a [[Wikipedia:Virtual console|virtual console]] at the end of the [[boot process]]. This article only covers console log-ins; see [[Start X at login]] for information about automatic login into [[Xorg]].
  
== Service ==
+
== Configuration ==
Create a new service file similar to {{ic|getty@.service}} by copying it to {{ic|/etc/systemd/system/}}:
+
  
# cp /usr/lib/systemd/system/getty@.service /etc/systemd/system/autologin@.service
+
Configuration relies on systemd [[Systemd#Editing provided units|drop-in files]] to override the default parameters passed to ''agetty''.
  
{{Note|{{ic|/etc/systemd/system/}} takes precedence over {{ic|/usr/lib/systemd/system/}}.}}
+
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 {{ic|tty''N''}}, where {{ic|''N''}} is a number). The configuration of automatic login for serial consoles will be slightly different. Device names of the serial consoles look like {{ic|ttyS''N''}}, where {{ic|''N''}} is a number.
  
Then change the {{ic|ExecStart}} line to include the {{ic|-a ''USERNAME''}} parameter:
+
=== Virtual console ===
  
{{hc|/etc/systemd/system/autologin@.service|
+
[[systemd#Editing provided units|Edit the provided unit]] either manually by creating the following drop-in snippet, or by running {{ic|systemctl edit getty@tty1}} and pasting its content:
2=[Service]
+
''[...]''
+
ExecStart=-/sbin/agetty --noclear -a ''USERNAME'' %I 38400
+
''[...]''
+
  
[Install]
+
{{hc|/etc/systemd/system/getty@tty1.service.d/override.conf|2=
WantedBy=getty.target
+
[Service]
 +
ExecStart=
 +
ExecStart=-/usr/bin/agetty --autologin ''username'' --noclear %I $TERM
 
}}
 
}}
  
{{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}} found in the default {{ic|getty@.service}} will 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 [[Start X at login|starting X automatically]], it may be useful to start {{ic|getty@tty1.service}} immediately by adding {{ic|1=Type=simple}} into the [[drop-in snippet]]. Both the init system and ''startx'' can be [[Silent boot|silenced]] to avoid the interleaving of their messages during boot-up.}}
{{Note|If you're using mingetty, simply replace /sbin/agetty to /sbin/mingetty}}
+
  
 +
If you want to use a ''tty'' other than ''tty1'', see [[Systemd FAQ#How_do_I_change_the_default_number_of_gettys.3F|systemd FAQ]].
  
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,
+
=== Serial console ===
# 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.}}
+
Create the following file (and leading directories):
  
To avoid errors related to display-manager.service in dmesg, you should set the default target to multi-user instead of graphical:
+
{{hc|/etc/systemd/system/serial-getty@ttyS0.service.d/autologin.conf|2=
# systemctl enable multi-user.target
+
[Service]
 
+
ExecStart=
===Killing X===
+
ExecStart=-/usr/bin/agetty --autologin ''username'' -s %I 115200,38400,9600 vt102
{{accuracy}}
+
}}
To kill X and prevent it from immediately reloading, stop the service.
+
  
# systemctl stop autologin@tty1.service
+
==See also==
  
===See also===
+
* [[Systemd#Change_default_target_to_boot_into|Change default runlevel/target to boot into]]
* [[Systemd#Change_default_target_to_boot_into|Change default runlevel/target to boot into]].
+

Latest revision as of 14:24, 8 April 2016

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; see Start X at login for information about automatic login into Xorg.

Configuration

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 ttyN, where N is a number). The configuration of automatic login for serial consoles will be slightly different. Device names of the serial consoles look like ttySN, where N is a number.

Virtual console

Edit the provided unit either manually by creating the following drop-in snippet, or by running systemctl edit getty@tty1 and pasting its content:

/etc/systemd/system/getty@tty1.service.d/override.conf
[Service]
ExecStart=
ExecStart=-/usr/bin/agetty --autologin username --noclear %I $TERM
Tip: The option Type=idle found in the default getty@.service will 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 getty@tty1.service immediately by adding Type=simple into 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 want to use a tty other than tty1, see systemd FAQ.

Serial console

Create the following file (and leading directories):

/etc/systemd/system/serial-getty@ttyS0.service.d/autologin.conf
[Service]
ExecStart=
ExecStart=-/usr/bin/agetty --autologin username -s %I 115200,38400,9600 vt102

See also