我在zmq中创建了一个客户端-服务器系统,该系统将帮助向登录到网络上所有计算机的用户发送大量通知。
客户端守护程序在所有不同计算机上的root用户下运行。但是,当一条消息发送到这样的客户端并调用“通知发送”时,该消息不会在用户桌面上弹出。我看到的错误是:
[(notify-send:8670):GLib-GObject-CRITICAL **:g_object_unref:断言'G_IS_OBJECT(object)'失败
我相信这是因为通知发送只能通过图形界面发送。或者通过在该特定用户(而不是root)下运行守护程序并设置DISPLAY =:0
1)有没有办法发送通知,例如notify-send或kdialog等,在root而不是用户本身下运行客户端守护程序?
2)还有其他方法可以更优雅地实现这一目标吗?
3)并且,可以以任何方式使用dbus吗?
您可以以用户身份进入su
,设置DISPLAY=:0
并运行notify-send
。我有done this before。