如何使用 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>

相关内容