Я пишу скрипт Python, который запускается с разрешениями sudo. В какой-то момент я хотел бы отправить уведомление пользователю. Я заметил, что notify-send не работает от имени пользователя root, поэтому я попытался запустить его от имени фактического пользователя, выполнив su $SUDO_USER -c notify-send ...
, но это тоже не сработало.
Первая из следующих функций работает при запуске без привилегий sudo. Ни один из них не работает при запуске с sudo. Есть идеи, почему?
def notify(message):
subprocess.run(['notify-send', '-i', 'utilities-terminal', 'Notification Title', message],
stdout=subprocess.PIPE,
stderr=subprocess.PIPE,
check=True)
def notifySudo(message):
subprocess.run(['su', os.environ['SUDO_USER'], '-c', 'notify-send', '-i', 'utilities-terminal', 'Notification Title', message],
stdout=subprocess.PIPE,
stderr=subprocess.PIPE,
check=True)
export DISPLAY=:0.0
(как видно из других сообщений), а также я видел в некоторых других вопросах этотeval "export $(egrep -z DBUS_SESSION_BUS_ADDRESS /proc/$(pgrep -u $LOGNAME gdm-x-session)/environ)"
, но он еще не работает. Не могли бы вы дать больше информации? - person dvilela   schedule 14.02.2019