Arch-Linux

如何使用 systemd 自動登錄到桌面?

  • March 10, 2022

如何配置 systemd 以自動登錄我的桌面環境,最好不使用登錄管理器?我正在使用 Arch Linux。

這在ArchWiki中有描述:

創建一個新的服務文件,類似於getty@.service將其複製到/etc/systemd/system/

cp /usr/lib/systemd/system/getty@.service /etc/systemd/system/autologin@.service

這基本上將已經存在的複製到一個可以自由修改getty@.service的新文件中。autologin@.service它被複製到,/etc/systemd/system因為這是儲存特定於站點的單元文件的地方。/usr/lib/systemd/system包含包提供的單元文件,因此您不應更改其中的任何內容。

然後,您必須將其符號連結autologin@.service到您要自動登錄的 tty 的 getty 服務,例如 tty1:

ln -s /etc/systemd/system/autologin@.service /etc/systemd/system/getty.target.wants/getty@tty1.service

到目前為止,這仍然與通常的getty@.service文件相同,但最重要的部分是修改autologin@.service為實際自動登錄。為此,您只需要將ExecStart行更改為讀取

ExecStart=-/sbin/agetty -a USERNAME %I 38400

in和ExecStartline之間的區別僅在於告訴 getty 使用使用者名 USERNAME 自動登錄使用者。getty@.service``autologin@.service``-a USERNAME

現在你只需要告訴 systemd 重新載入它的守護程序文件並啟動服務:

systemctl daemon-reload
systemctl start getty@tty1.service

(如果您已經登錄 tty1,我不確定服務是否會正常啟動,最安全的方法可能是重新啟動而不是啟動服務)。

如果您想自動啟動 X,請將以下程式碼段插入您的~/.bash_profile(再次取自wiki):

if [[ -z $DISPLAY ]] && [[ $(tty) = /dev/tty1 ]]; then
   exec startx
fi

您必須修改您~/.xinitrc的桌面環境才能啟動您的桌面環境,如何做到這一點取決於 DE,並且可能在 ArchWiki 中也有描述。

引用自:https://unix.stackexchange.com/questions/42359