Привет.
Есть простой код на 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
Есть идеи. как исправить?