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

但是当尝试这个时:

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

我发现 gnome-panel 不存在。谷歌搜索这项工作,我发现很少有人提示这项工作不再有效。所以我对这个主题做了一些研究,并提出了这个(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

在将用户切换到非 root 用户之前获取 DBUS_SESSION_BUS_ADDRESS。这个语句,如果我没有错的话,所以根据上面链接中的代码,我制作了另一个脚本(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

最佳答案

通知服务已更改为 ubuntu 14.04

它现在被称为 org.freedesktop.Notifications.service
您可以查看 here 以获取有关 Notification On Screen Display 可能性的更多信息。

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



只需更新由 udev 启动的脚本即可使用它。

解决与以 root 身份运行 notify-send 命令相关的问题。

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

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

关于linux - 以 root 身份运行通知发送,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28195805/

10-16 15:39