总结

总结

今天我太多几个小时才弄清楚我的 systemd 出了什么问题,它拒绝在 中查找单位.config/systemd/user

症状如下:

  • systemd-analyze --user verify <unit>工作

  • 我 100% 确定该单元文件确实存在

  • 整个$HOME目录并.config/systemd安装在另一个发行版上也可以

我真希望有人早点发布这个帖子,这样我就可以在这里做这件事了。

答案1

总结

运行systemctl [--user] show -p UnitPath --value以查看 systemd 在哪里寻找单元。不是应该是任何可替代的部分,例如${HOME}

(请参阅我的示例输出以获取工作示例)

如果 systemd 找不到您的设备,您可以检查其他事项:

  • 该单元物理存在(尝试查找单元文件)

  • 查看systemd-analyze [--user] verify <unit>

  • systemd 已重新加载:systemd [--user] daemon-reload

  • 尝试在systemctl [--user] --list-units

  • 尝试检查整体systemctl [--user] show是否存在意外输出(参见我的工作输出)

我的工作systemctl show输出:

[...]
Environment=HOME=/home/<USERNAME> LANG=en_US.UTF-8 LOGNAME=<USERNAME> MAIL=/var/spool/mail/<USERNAME> PATH=/usr/local/bin:/usr/bin SHELL=/bin/bash USER=<USERNAME> XDG_RUNTIME_DIR=/run/user/1000 DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus DISPLAY=:0 XAUTHORITY=/home/<USERNAME>/.Xauthority
ConfirmSpawn=no
ShowStatus=no
UnitPath=/home/<USERNAME>/.config/systemd/user.control /run/user/1000/systemd/user.control /run/user/1000/systemd/transient /run/user/1000/systemd/generator.early /etc/xdg/systemd/user /home/<USERNAME>/.config/systemd/user /etc/systemd/user /run/user/1000/systemd/user /run/systemd/user /run/user/1000/systemd/generator
 /home/<USERNAME>/.local/share/systemd/user /usr/local/share/systemd/user /usr/share/systemd/user /usr/local/lib/systemd/user /usr/lib/systemd/user /run/user/1000/systemd/generator.late
[...]

您的输出可能会有略微不同的路径

未来的我

您需要检查systemctl --user show -p UnitPath --value格式错误的值,在您的情况下,它的字面意思/${HOME}/.config/systemd/user.control [...]/home/<USERNAME>/.config/systemd/user.control [...]

systemd 用于XDG_CONFIG_HOME查找配置目录的位置 -源代码。你的XDG_CONFIG_HOME=${HOME}/.config文件/etc/environment显然不会扩展,并且会破坏你的systemd --user实例

相关内容