Difference between revisions of "Automatic login to virtual console"

From ArchWiki
Jump to: navigation, search
(Service)
(Killing X: flagged with Template:accuracy)
(14 intermediate revisions by 7 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 15: Line 16:
 
Create a new service file similar to {{ic|getty@.service}} by copying it to {{ic|/etc/systemd/system/}}:
 
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
+
  # cp /usr/lib/systemd/system/getty@.service /etc/systemd/system/autologin@.service
  
 
{{Note|{{ic|/etc/systemd/system/}} takes precedence over {{ic|/usr/lib/systemd/system/}}.}}
 
{{Note|{{ic|/etc/systemd/system/}} takes precedence over {{ic|/usr/lib/systemd/system/}}.}}
  
Once created you can link the new {{ic|autologin@.service}} to your chosen tty, e.g. {{ic|tty1}}, {{ic|tty2}}, [...] {{ic|tty8}}, etc., by specifying it as an alias in the {{ic|[Install]}} section of the unit file. Accordingly, change the value of {{ic|ExecStart}} in {{ic|autologin@.service}}:
+
Then change the {{ic|ExecStart}} line to include the {{ic|-a ''USERNAME''}} parameter:
  
 
{{hc|/etc/systemd/system/autologin@.service|
 
{{hc|/etc/systemd/system/autologin@.service|
 
2=[Service]
 
2=[Service]
[...]
+
''[...]''
ExecStart=-/sbin/agetty --noclear -a ''USERNAME'' %I 38400
+
ExecStart=-/sbin/agetty --noclear -a ''USERNAME'' %I 38400
[...]
+
''[...]''
 +
 
 
[Install]
 
[Install]
Alias=getty.target.wants/getty@''tty1''.service
+
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|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.}}}}
 +
{{Note|If you're using mingetty, simply replace /sbin/agetty to /sbin/mingetty}}
  
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 {{ic|getty@tty''X''.service}} for the specified tty and enable the new {{ic|autologin@tty''X''.service}}. For example,
 
  # systemctl daemon-reload
 
  # systemctl daemon-reload
  # systemctl disable getty@tty1
+
  # systemctl disable getty@''tty1''
  # systemctl enable autologin@tty1
+
  # systemctl enable autologin@''tty1''
  # systemctl start 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@tty''X''.service will kill your X server.}}
+
{{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.}}
  
 
To avoid errors related to display-manager.service in dmesg, you should set the default target to multi-user instead of graphical:
 
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
 
  # systemctl enable multi-user.target
(See also: [[Systemd#Change_default_runlevel.2Ftarget_to_boot_into|Change default runlevel/target to boot into]].)
+
 
 +
===Killing X===
 +
{{accuracy}}
 +
To kill X and prevent it from immediately reloading, stop the service.
 +
 
 +
# systemctl stop autologin@tty1.service
 +
 
 +
===See also===
 +
* [[Systemd#Change_default_target_to_boot_into|Change default runlevel/target to boot into]].

Revision as of 21:47, 20 December 2012

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.

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

Then change the ExecStart line to include the -a USERNAME parameter:

/etc/systemd/system/autologin@.service
[Service]
[...]
ExecStart=-/sbin/agetty --noclear -a USERNAME %I 38400
[...]

[Install]
WantedBy=getty.target
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.
Note: If you're using mingetty, simply replace /sbin/agetty to /sbin/mingetty


Finally, you need to disable the old getty@ttyX.service for the specified tty and enable the new autologin@ttyX.service. For example,

# 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

Killing X

Tango-inaccurate.pngThe factual accuracy of this article or section is disputed.Tango-inaccurate.png

Reason: please use the first argument of the template to provide a brief explanation. (Discuss in Talk:Automatic login to virtual console#)

To kill X and prevent it from immediately reloading, stop the service.

# systemctl stop autologin@tty1.service

See also