从 upstart 启动的守护进程中使用 libnotify

从 upstart 启动的守护进程中使用 libnotify

我有一个 Python 脚本,它从 MQTT 服务器获取消息,并使用 libnotify 解析它们以进行显示。当我从终端运行它时,它工作正常,但当我使用 upstart 运行它时,我没有收到通知气泡。我猜是因为它不理解要使用哪个 X 显示和 Xauthority 文件。

当我使用 cron 执行类似操作时,我必须将其设置为 */10 * * * * DISPLAY=:0.0 XAUTHORITY=~/.Xauthority 通知发送“别忘了”“你太棒了”我想我需要使用 upstart 执行类似操作才能使其工作?或者有没有办法让 libnotify 广播到所有 xscreens 或类似的东西?

感谢您的任何建议或指点

答案1

从不同的角度来解决这个问题会更好吗?

我会尝试通过将 .desktop 文件放入 ~/.config/autostart 来在登录时运行您的脚本,并确保如果出现网络问题,脚本会自动重新启动(我认为这就是您使用 upstart 的原因)。

也许是这样的:

while 1:
    rc = 0
    while rc == 0:
        rc = client.loop()
    # Check error code, possibly pause for a while
    client.reconnect()

相关内容