以root身份运行notify-send

Sxubach:

我试图在插入USB设备时收到通知,为此,我使用udev规则来跟踪其插入时刻,然后从那里启动脚本。脚本的想法是使用链接中解释的内容

但是当尝试这个:

pids=`pgrep -u $user gnome-panel`

我发现gnome面板不存在。用谷歌搜索这个工作范围,我发现很少有人抱怨这个工作范围不再有效。因此,我对该主题进行了一些研究,并提出了以下建议(notify-plugin2.sh):

#!/bin/bash

DBUS_SESSION_BUS_ADDRESS=$(cat /home/user/.dbus/session-bus/$(cat /var/lib/dbus/machine-id)-0 | grep DBUS_SESSION_BUS_ADDRESS= | sed -e 's/DBUS_SESSION_BUS_ADDRESS=//')

su user Test.sh $DBUS_SESSION_BUS_ADDRESS

DBUS_SESSION_BUS_ADDRESS在将用户切换为非root用户之前获得此权限。该语句(如果我没记错的话)有效,因此根据上面链接中的代码,我制作了另一个脚本(Test.sh

#!/bin/sh
user=`whoami`
title="Test"
timeout=30000
icon="~/Pictures/PicturesForPwrPoint/Pluged.jpg"

DBUS_SESSION_BUS_ADDRESS=$1

echo $DBUS_SESSION_BUS_ADDRESS
DBUS_SESSION_BUS_ADDRESS=$DBUS_SESSION_BUS_ADDRESS \ notify-send -u low -t $timeout -i "$icon" "$title"

对于我在其他代码上可以看到的,唯一的问题是获取DBUS_SESSION_BUS_ADDRESS,如果我没有记错的话,我可以拥有它。

所以我的问题是,为什么启动时屏幕上没有花哨的弹出消息?

sudo sh notify-plugin2.sh
dEIM;

的通知服务已更改为ubuntu 14.04

现在叫做 org.freedesktop.Notifications.service

您可以在此处查看有关Notification On Screen Display可能性的更多信息

您也可以使用以下命令行发送自己的消息

user @ machine〜$通知发送“消息文本”

只需更新正在udev使用的脚本即可使用它。


要解决此问题,请注意notify-send以root用户身份运行命令。

尝试以您的普通用户身份运行,即

su <YOURUSER> -c 'notify-send “Text of message”'

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章