You are not logged in.

#1 2017-10-19 20:42:33

Registered: 2015-03-23
Posts: 79

systemd Change default login tty [SOLVED]

Running xfce without a DM. Using xorg-xinit to startx. Per default, after startup, I get a login prompt on tty1 and all is good.

However, I'd like to change the default behaviour to be dropped at a login prompt on tty6 (or whatever) without having to manually Ctrl+Alt+F6.

I've read this:, which states: "If you want to use a tty other than tty1, see systemd FAQ."
which links to this: … _gettys.3F.

However, I'm still not getting it. I've tried both manually adding and deleting the files, /etc/systemd/system/ and getty@tty6.service. Alternatively also used systemctl to enable and disable them. As a test, (I know this is bad) also editing last line of /usr/lib/systemd/system/getty@.service DefaultInstance=tty1 to DefaultInstance=tty7, and combinations of all the above.

I've searched using variations of arch "systemd default" getty, tty, vt, login, etc, read man logind.confd, logind.conf, loginctl, etc.

Only difference I've noticed during testing is if I delete/disable getty@tty1.service, upon reboot, don't get a login prompt in tty1. I can switch tty's to login though, dynamically started getty's per systemd.

Also possibly relevant is a noclear.conf file in /etc/systemd/system/getty@tty1.service.d/.

Seems what I'm trying to do should be pretty pretty straight forward as all the DM's I've used, use tty7. Guess I could try write a script or just Ctrl+Alt+N, but thinking I'm missing something and there has to be a simple solution.




# merge in defaults and keymaps


if [ -f $sysresources ]; then

    xrdb -merge $sysresources



if [ -f $sysmodmap ]; then

    xmodmap $sysmodmap


if [ -f "$userresources" ]; then

    xrdb -merge "$userresources"



if [ -f "$usermodmap" ]; then

    xmodmap "$usermodmap"



# start some nice programs

if [ -d /etc/X11/xinit/xinitrc.d ] ; then
 for f in /etc/X11/xinit/xinitrc.d/?*.sh ; do
  [ -x "$f" ] && . "$f"
 unset f


# twm &
# xclock -geometry 50x50-1+1 &
# xterm -geometry 80x50+494+51 &
# xterm -geometry 80x20+494-0 &
# exec xterm -geometry 80x66+0+0 -name login  

exec startxfce4 



exec /usr/bin/Xorg -keeptty -nolisten tcp "$@" vt$XDG_VTNR



systemctl results of a test:

$ systemctl | grep tty
sys-devices-pci0000:00-0000:00:12.0-usb3-3\x2d2-3\x2d2:1.0-ttyUSB0-tty-ttyUSB0.device     loaded active plugged   PL2303 Serial Port                                                                  
sys-devices-pci0000:00-0000:00:12.0-usb3-3\x2d3-3\x2d3:1.0-ttyUSB1-tty-ttyUSB1.device     loaded active plugged   PL2303 Serial Port                                                                  
sys-devices-platform-serial8250-tty-ttyS1.device                                          loaded active plugged   /sys/devices/platform/serial8250/tty/ttyS1                                          
sys-devices-platform-serial8250-tty-ttyS2.device                                          loaded active plugged   /sys/devices/platform/serial8250/tty/ttyS2                                          
sys-devices-platform-serial8250-tty-ttyS3.device                                          loaded active plugged   /sys/devices/platform/serial8250/tty/ttyS3                                          
sys-devices-pnp0-00:03-tty-ttyS0.device                                                   loaded active plugged   /sys/devices/pnp0/00:03/tty/ttyS0                                                   
getty@tty6.service                                                                        loaded active running   Getty on tty6                                                                       
system-getty.slice                                                                        loaded active active    system-getty.slice                                                                                                                                       loaded active active    Login Prompts                


Last edited by NuSkool (2017-10-20 23:28:56)


#2 2017-10-20 06:44:35

Registered: 2012-08-01
Posts: 478

Re: systemd Change default login tty [SOLVED]

Both linked pages deal with setting up getty to be present on given TTYs, not switching to TTY. What you want is probably running chvt 6 somewhere at the start of your system.

Sometimes I’m a bit harsh — don’t get offended too easily!
PGP: 7C848198AE93D3BB | Coreutils SHA2 performance
Russian roulette: curl "$(cat /dev/urandom | tr -cd [:alnum:] | head -c 4)" | sudo bash


#3 2017-10-20 21:38:36

Registered: 2015-03-23
Posts: 79

Re: systemd Change default login tty [SOLVED]

Through more detailed research and more trial & error, figured this out. Either this info is not documented anywhere I could find, or I didn't use the proper search terms. The following may help others wanting to do similar, not knowing how.

Firstly thanks mpan, you broke my misplaced tunnel vision on a systemd config or setting.

Then I'd like to thank those who could have answered this question off top of their heads with a single sentence (you know who you are). This confirms I need to start using my identy obscured profile. Note to self: stop using this one now.

Long story short, a very simple solution, just lacked a bit of direction initially.

1) Created a one line script "change.login.tty" in ~/bin
2) Created a systemd service file, "change.login.tty.service" in /etc/systemd/system/ 
3) Enabled "change.login.tty.service"

systemctl enable change.login.tty.service

4) Edited /etc/systemd/logind.conf to, #NAutoVTs=7 and #ReserveVT=7
5) Start getty on tty7, (likely not necessary)

systemctl enable getty@tty7

6) Reboot, login at prompt on tty7 and enjoy.

I played around a bit with kernel paramater "console=N" which leads me to consider the possibility that the kernel may actually set the "login ttyN" rather than systemd, but just a hunch.


# This changes the login tty #

chvt 7


Description=Change login tty number.

ExecStart=/home/[user name]/bin/change.login.tty



#  This file is part of systemd.
#  systemd is free software; you can redistribute it and/or modify it
#  under the terms of the GNU Lesser General Public License as published by
#  the Free Software Foundation; either version 2.1 of the License, or
#  (at your option) any later version.
# Entries in this file show the compile time defaults.
# You can change settings by editing this file.
# Defaults can be restored by simply deleting this file.
# See logind.conf(5) for details.


Please correct errors or simpler solutions via posting, rather that just pointing out errors. It worked for me, your results may vary.
If this gets deleted or obscured from searches ie: tgn, db. I can put it up on my blog for easy search indexing.

Last edited by NuSkool (2017-10-21 18:31:59)


Board footer

Powered by FluxBB