如何使用 systemd 自動登入桌面?

如何使用 systemd 自動登入桌面?

如何設定 systemd 以自動登入桌面環境,最好不使用登入管理器?我正在使用 Arch Linux。

答案1

這在建築維基百科

建立一個新的服務文件,類似於[email protected]將其複製到/etc/systemd/system/

cp /usr/lib/systemd/system/[email protected] /etc/systemd/system/[email protected]

這基本上將現有文件複製到可以自由修改的[email protected]新文件中。[email protected]它被複製到,/etc/systemd/system因為這是儲存特定於網站的單元檔案的位置。/usr/lib/systemd/system包含套件提供的單元文件,因此您不應更改其中的任何內容。

然後,您必須將其符號連結[email protected]到您想要自動登入的 tty 的 getty 服務,例如 tty1:

ln -s /etc/systemd/system/[email protected] /etc/systemd/system/getty.target.wants/[email protected]

到目前為止,這仍然與通常的[email protected]文件相同,但最重要的部分是修改[email protected]以實際自動登入。為此,您只需將行更改ExecStart為讀取

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

ExecStartin[email protected]和中的行之間的差異[email protected]僅在於-a USERNAME告訴agetty 自動使用使用者名稱USERNAME 登入使用者。

現在您只需告訴 systemd 重新載入其守護程式檔案並啟動服務:

systemctl daemon-reload
systemctl start [email protected]

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

如果您想自動啟動 X,請將以下程式碼片段插入到您的檔案中~/.bash_profile(取自維基百科再次):

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

您將必須修改您的~/.xinitrc桌面環境才能啟動您的桌面環境,具體操作方法取決於 DE,並且可能在 ArchWiki 中也有描述。

答案2

國際海事組織拱門維基目前推薦一個更簡單的解決方案:

運行助手 ( systemctl edit getty@tty1) 或執行我手動執行的操作:

mkdir -p /etc/systemd/system/[email protected]/
touch /etc/systemd/system/[email protected]/override.conf

您要輸入的文字(透過任一方法)是 (一定要改變使用者名稱適當地):

[Service]
ExecStart=
ExecStart=-/usr/bin/agetty --autologin username --noclear %I $TERM

筆記: 空行很重要!空白行將首先清除 ExecStart 項目,而下一行將引入新的 exec 命令。

現在,重新啟動 ( ),之前阻塞等待使用者名稱/密碼輸入的地方將會發生shutdown -r 0一些類似的事情... login: username (automatic login)


重新啟動並自動登入後,如果您像我一樣並且想立即透過 SSH 進入該系統,您可能需要運行:

systemctl enable sshd.service

這將建立符號連結(例如ln -s '/usr/lib/systemd/system/sshd.service' '/etc/systemd/system/multi-user.target.wants/sshd.service'

答案3

直接修改檔案(這是 的符號連結):/etc/systemd/system/getty.target.wants/[email protected]/lib/systemd/system/getty@service

追加-a/--autologin USERNAME到該行:

ExecStart=-/sbin/agetty --noclear %I $TERM

因此:

ExecStart=-/sbin/agetty -a USERNAME %I $TERM

您也可以刪除-o '-p -- \\u'(如目前 Arch 安裝中所示),因為這將啟動登錄,USERNAME但仍要求輸入密碼。

重新啟動後,您將自動登入。

PS將檔案名稱變更[email protected]tty您要登入的檔案名稱。

答案4

您也可以使用getty(get tty) 命令自動登入指定用戶,該命令的參數getty可以是--autologin-a,我運行的是 Linux Debian Ubuntu,所以我不知道該命令是否在其他發行版中可用。

getty -a <user>

相關內容