【发布时间】:2015-03-27 13:30:13
【问题描述】:
我试图在插入 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
【问题讨论】:
-
看看报告错误部分bugs.launchpad.net/ubuntu/+source/libnotify/+bug/160598的帖子可能会很有趣
-
你的操作系统是什么?
-
ubuntu 14.04 LTS 32 位
-
查看this answer 以了解适用于 Ubuntu 16.04 的示例函数
标签: linux notifications root dbus notify