On Ubuntu Server and Arch I was able to change the following line in /lib/systemd/system/getty@.service
# Before
ExecStart=-/sbin/agetty -o '-p -- \\u' --noclear %I $TERM
# After
ExecStart=-/sbin/agetty --noissue --autologin john %I $TERM Type=idle
And it works, that it will login to the user john but when I logout of the user john with using exit
in the terminal, it logs john back in. Is there a way to change this ExecStart setting to enable auto login for a user on startup but only on startup?
The likely cause is that agetty itself does not exit when the shell exits, it simply respawns the login command. You can confirm this if the PID of the agetty doesn’t change.
If it does change (and systemd restarts the agetty process) then you might want to stop the service as one of the Exec statements of the service to prevent it from respawning.