微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

AppIndicator 在登录时启动的 Systemd 条件

如何解决AppIndicator 在登录时启动的 Systemd 条件

我正在制作一个简单的 Python 脚本,用于监控我的 VPN 状态并在任务栏上显示一个小应用程序指示器。我创建了对应的 .service.desktop 文件用户级别,而不是系统级别),以便将脚本集成到系统中。该脚本运行良好,我可以通过 systemctl 启动和停止服务,但我不知道如何在启动时启动它。我的服务文件如下所示:

[Unit]
Description=nordVPN indicator

[Service]
ExecStart=/bin/sh -c '/usr/bin/python3 $HOME/nordVPNindicator/nordVPNindicator.py'

[Install]
WantedBy=default.target

但是在启动时,脚本没有启动。这是 journalctl --user-unit nordVPNindicator输出

jun 22 18:34:54 X51 systemd[2745]: Started nordVPN indicator.
jun 22 18:34:54 X51 sh[2774]: Unable to init server: Could not connect: Connection refused
jun 22 18:34:54 X51 sh[2774]: Unable to init server: No se pudo conectar: Connection refused
jun 22 18:34:56 X51 python3[2775]: gtk_icon_theme_get_for_screen: assertion 'GDK_IS_SCREEN (screen)' Failed
jun 22 18:34:56 X51 sh[2774]: Segmentation fault
jun 22 18:34:56 X51 systemd[2745]: nordVPNindicator.service: Main process exited,code=exited,status=139/n/a
jun 22 18:34:56 X51 systemd[2745]: nordVPNindicator.service: Failed with result 'exit-code'.

问题是,如果我在一切都开始后执行 systemctl --user start nordVPNindicator.service,则服务可以正常工作,并且不会发生段错误,因此问题一定出在我的服务定义中。我想该解决方案依赖于等待图形会话(或其他服务)启动,但使用 PartOf=graphical-session.target 没有任何区别。有什么想法吗?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。