加入收藏 | 设为首页 | 会员中心 | 我要投稿 安卓应用网 (https://www.0791zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

linux – 以root身份运行notify-send

发布时间:2020-05-29 13:42:39 所属栏目:Linux 来源:互联网
导读:我正在尝试在插入USB设备时收到通知,为此我使用udev规则来跟踪它被插入的时刻,然后从那里启动脚本. 脚本的想法是使用 link中解释的内容. 但是在尝试这个时: pids=`pgrep -u $user gnome-panel` 我发现gnome-panel不在那里.用Google搜索这项工作,我发现很少有

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

但是在尝试这个时:

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

我发现gnome-panel不在那里.用Google搜索这项工作,我发现很少有人抱怨这项工作不再有效.所以我对这个主题进行了一些研究,并想出了这个(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以获取有关屏幕显示通知可能性的更多信息.

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

user@machine ~$notify-send “Text of message”

只需更新udev正在启动的脚本即可使用它.

解决以root身份运行notify-send命令所遇到的问题.

尝试运行是您的普通用户,即

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

(编辑:安卓应用网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读