今天我太多几个小时才弄清楚我的 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
实例