Я пытаюсь запустить кучу скриптов / команд каждый день.
Для этой цели я настроил анакрон пользовательского пространства, как описано здесь. Anacron запускается ежечасно cron:
содержимое /var/spool/cron/rawing
:
@hourly /usr/sbin/anacron -s -t ${HOME}/.anacron/etc/anacrontab -S ${HOME}/.anacron/spool
Это отлично работает. Однако мне не удалось запустить какие-либо графические приложения из моего анакронтаба. Я пробовал:
@daily 0 gui_test_env env SCREEN=:0 zenity --info
@daily 0 gui_test_screen SCREEN=:0 zenity --info
Оба из них терпят неудачу с сообщением об ошибке
Unable to init server: Could not connect: Connection refused
(zenity:6034): Gtk-WARNING **: cannot open display:
Также
@daily 0 notify_test SCREEN=:0.0 && notify-send "foobar"
не выдавал сообщения об ошибке, но не отображал уведомление. С другой стороны, сценарий Python, который отображает уведомления рабочего стола, не с сообщением
Unable to init server: Could not connect: Connection refused
Traceback (most recent call last):
File "/home/rawing/Desktop/folder/python/misc/confirm_run.py", line 36, in <module>
n.show()
GLib.Error: g-spawn-exit-error-quark: Error spawning command line 'dbus-launch --autolaunch=db6d4465f8584b8faa8abfb09b242b95 --binary-syntax --close-stderr': Child process exited with code 1 (1)
В случае, если это имеет значение, код Python выглядит так (сокращенно):
from gi.repository import Notify
Notify.init('test')
n= Notify.Notification.new('title', 'question', "dialog-question")
n.set_urgency(Notify.Urgency.NORMAL)
n.show()
Добавление xhost local:rawing > /dev/null
в мой ~/.bashrc
как здесь предлагается, тоже не помогло.
Обновление: мне удалось запустить приложения с графическим интерфейсом, используя DISPLAY=:0 XAUTHORITY=/home/rawing/.Xauthority some_gui_app
. Однако уведомления на рабочем столе по-прежнему не работают. Ошибка:
Traceback (most recent call last):
File "/home/rawing/Desktop/folder/python/misc/confirm_run.py", line 36, in <module>
n.show()
GLib.Error: g-dbus-error-quark: GDBus.Error:org.freedesktop.DBus.Error.ServiceUnknown: The name org.freedesktop.Notifications was not provided by any .service files (2)
PS: Предложения о том, как сделать эту работу без анакрона, также приветствуются. Я думал, что анакрон сделает это легко ... оказывается, я был слишком оптимистичен.