LINUX.ORG.RU

Python3. notify2. Вывести уведомление на раб. стол

 , ,


0

2

Привет.

Есть простой код на python3, который выводит уведомление на раб. стол:

#!/usr/bin/python3
import notify2

def set_notify(head, text):
    try:
        notify2.init('Steam_gifts_bot')
        n = notify2.Notification(head, text)
        n.set_timeout(15000)
        n.show()
    except Exception as e:
        print(f"Can not send the notification: {e}")

set_notify("Hey", "I am here")

Всё работает, если запустить с терминала. Но если запустить этот же скрипт как «сервис», то уведомление не работает из-за ошибки.

Сервис:

vodka@vodka-PC:~$ cat /etc/systemd/system/1.service
[Unit]
Description=Hey

[Service]
Type=simple
ExecStart=/tmp/1.py
ExecStop=killall 1.py
User=vodka
Group=vodka
StandardOutput=journal
StandardError=journal
Environment="PYTHONUNBUFFERED=on"
Environment="DISPLAY=:1"

[Install]
WantedBy=multi-user.target

Ошибка:

мая 01 16:43:44 vodka-PC dbus-daemon[13634]: [session uid=1000 pid=13631] AppArmor D-Bus mediation is enabled
мая 01 16:43:47 vodka-PC 1.py[13628]: Can not send the notification: org.freedesktop.DBus.Error.NoServer: Failed to connect to socket /tmp/dbus-e4nBzpAGhV: Connection refused

Есть идеи. как исправить?

★★★

Если DISPLAY=:1 убрать или на :0 поменять?

IPR ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.