systemd PATH 无法持续​​工作

systemd PATH 无法持续​​工作

我有一个非常简单的systemd服务:

[Unit]
Description=throttle service

[Service]
ExecStart=%h/.local/bin/throttle --server
Type=simple
Restart=always
RestartSec=3

[Install]
WantedBy=default.target

执行的服务使用mbsync [something]python运行命令。subprocessshell=False

我已经安装了 3 个副本mbsync

❯ which -a mbsync
/home/fbence/.local/bin/mbsync
/home/fbence/.local/bin/mbsync
/usr/bin/mbsync
/bin/mbsync

从登录 shell运行mbsync显然会运行 中的顶部服务~/.local。如果我手动启动systemd服务,systemctl --user start throttle.service它也会选择这个服务。如果我重新启动系统,它似乎会选择其他(较旧)版本之一,因为我看到 中的错误journalctl,它正在尝试访问较旧版本的配置文件。如果我手动停止并重新启动服务(systemctl --user stop/start),它会再次正常工作。

为什么这不一致?我启动它和它在启动时启动有什么区别?我该如何修复它以使其在启动时也能正常工作?

更新

经过一些调试后,我发现/usr/libexec/gdm-x-session记录了一些有关运行的信息dbus-update-activation-environment。我测试并添加ExecStartPre=/bin/sleep 30解决了该问题。所以现在我的问题实际上是:如何设置服务以不那么黑客的方式等待这种情况发生?

相关内容