相关疑难解决方法(0)

我可以以 root 身份在另一个用户的桌面上启动图形程序吗?

以下是我认为我需要了解的其他问题:

  • 来自非 X 会话?(意味着 root 没有登录到 X)

  • 如果多人登录 X,我是否可以自动检测谁在哪个屏幕上,从而以编程方式检测我需要在哪个屏幕上启动应用程序?

  • 我可以以用户身份启动应用程序吗?(好吧,我 99.999% 确定这是肯定的)

  • 我可以检测 X 组的用户是否登录到 X 吗?

root xorg session

40
推荐指数
2
解决办法
3万
查看次数

将通知发送与 cron 一起使用

我正在使用带有 KDE/Awesome WM 的 Arch Linux。我正在尝试 notify-sendcron.

我试过设置DISPLAY/XAUTHORITY变量,并notify-send使用“sudo -u”运行,但都没有结果。

我能够从会话中以交互方式调用通知发送并获取通知。

FWIW,cron 作业运行良好,我通过将内容回显到临时文件进行了验证。只是“通知发送”不起作用。

代码:

[matrix@morpheus ~]$ crontab -l
* * * * *  /home/matrix/scripts/notify.sh

[matrix@morpheus ~]$ cat /home/matrix/scripts/notify.sh
#!/bin/bash
export DISPLAY=127.0.0.1:0.0
export XAUTHORITY=/home/matrix/.Xauthority
echo "testing cron" >/tmp/crontest
sudo -u matrix /usr/bin/notify-send "hello"
echo "now tested notify-send" >>/tmp/crontest

[matrix@morpheus ~]$ cat /tmp/crontest
testing cron
now tested notify-send

[matrix@morpheus ~]$ 
Run Code Online (Sandbox Code Playgroud)

如您所见,通知发送之前和之后的回声有效。
我也试过设置DISPLAY=:0.0

更新:我搜索了一些,发现需要设置DBUS_SESSION_BUS_ADDRESS。在使用我从交互式会话中获得的值对其进行硬编码后,屏幕上每分钟都会弹出一个小小的“你好”消息!

但问题是这个变量不是永久的,所以我会尝试那里建议的命名管道解决方案。

[matrix@morpheus ~]$ cat scripts/notify.sh
#!/bin/bash …
Run Code Online (Sandbox Code Playgroud)

shell scripting cron libnotify

40
推荐指数
5
解决办法
3万
查看次数

X11 向所有 DISPLAY 上的所有用户发送通知

可能的重复:
在所有正在运行的 X 显示器上显示通知

作为 root,我试图在远程服务器上执行一个命令,向用户弹出一个消息窗口;问题是,如果没有 su - user(因为很多用户花费太多时间),如何获得任何用户的正确 DISPLAY 值?

x11 notifications

5
推荐指数
1
解决办法
4384
查看次数

标签 统计

cron ×1

libnotify ×1

notifications ×1

root ×1

scripting ×1

session ×1

shell ×1

x11 ×1

xorg ×1