notify-send не работает с рутом в Ubuntu 14.04

У меня есть небольшой скрипт на python, который я запускаю, используя скрипт оболочки, хранящийся в "/ etc / X11 / Xsession.d"

Код очень прост, он показывает уведомление message

import os
import time

while True:
      os.system('notify-send -i "/opt/say/logo.png" "Title" "Message"')
time.sleep(30) 

Код просто показывает уведомление каждые 30 секунд. Он работает на Ubuntu 12.04 без проблем, но не работает на Ubuntu 14.04. Скрипт оболочки в "/ etc / X11 / Xsession.d" запускается от имени root, и в результате мой код на python запускается с привилегиями root. Я не очень хочу привилегии root. Все, что я хочу, - это видеть уведомление.

2
задан 23 August 2014 в 03:21

1 ответ

Необходимо отправить уведомлять сообщение как нормальный основной пользователь системы, (ususally идентификатор 1000):

#!/bin/bash
MAINUSER=$(cat /etc/passwd|grep 1000|sed "s/:.*$//g")
su $MAINUSER -c $"notify-send -i \"/opt/say/logo.png\" \"Title\" \"Message\""

(не уверенный, как назвать его как это в Вашем сценарии Python, но я надеюсь, что это помогает)

0
ответ дан 23 August 2014 в 03:21

Другие вопросы по тегам:

Похожие вопросы: