我目前正在尝试在ssh-agent
每次登录时通过使用 systemd 将其作为用户服务启动正如 arch wiki 中所解释的。
但是,当我执行 时systemctl --user start ssh-agent
,会systemctl
通过 sudo 提示我输入密码,就像我正在启动常规服务一样。然后它会失败,因为它无法连接到总线。然而,$DBUS_SESSION_BUS_ADDRESS
是unix:path=/run/user/1000/bus
而且应该没问题。但如果我通过切换到root用户sudo su
,则为$DBUS_SESSION_BUS_ADDRESS
空。因此,我认为实际问题是systemctl
尝试以 root 用户而不是我的用户身份启动用户服务,这也是它通过 sudo 提示我输入密码的原因。所以,我认为这才是真正的问题。
那么,有人知道为什么systemctl
即使我提供了也通过 sudo 作为 root 执行吗--user
?
答案1
我发现有一个别名systemctl
将其替换为sudo systemctl
in ~/.bashrc.aliase
。这使得它无法systemctl --user
正常运行。