Questão notify-send não funciona com root no Ubuntu 14.04


Eu tenho um pequeno script python que eu iniciá-lo usando um script de shell armazenado em "/etc/X11/Xsession.d" 

O código é muito simples, mostra uma mensagem de notificação

import os
import time

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

O código simplesmente mostra uma mensagem de notificação a cada 30 segundos. Ele funciona no Ubuntu 12.04 sem problemas, mas não funciona no Ubuntu 14.04. O script de shell em "/etc/X11/Xsession.d"  executar como uma raiz e como resultado meu código python executado com privilégios de root. Eu realmente não quero privilégios de root. Tudo que eu quero é poder ver a notificação.


2
2017-08-22 23:21


origem




Respostas:


Você deve enviar a mensagem de notificação como o usuário principal normal do sistema (usualmente ID 1000):

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

(não tenho certeza, como chamá-lo assim no seu script python, mas espero que ajude)


2
2017-10-15 18:15