Убунту 18.04 и 20.04
Привет,
У меня есть сценарий резервного копирования, работающий как служба systemd (borgmatic) с использованием systemd-запретить
запретить пользователю перезагружать/переводить в спящий режим/выключать компьютер. Это хорошо работает.
К сожалению, когда пользователь пытается выключить или перезагрузить компьютер в GNOME, и ничего не происходит, т. е. действие молча терпит неудачу, пользователь сбивается с толку и в конце концов выключает компьютер долгим нажатием кнопки питания :-(
Чего я хотел бы добиться, так это иметь возможность открыть диалоговое окно (с помощью zenity или notify-send) и попросить пользователя немного подождать, но только после того, как он попытается завершить работу.
Я немного поэкспериментировал с systemd --пользователь
сервисные единицы, чтобы диалоговое окно zenity отображалось перед различными целями (gnome-session-shutdown.target
), но это не работает, так как процедура выключения даже не запускается... (И даже если она запускается, Xorg, похоже, уже отключен, а zenity дает сбой из-за отсутствия DISPLAY.)
Когда systemd-запретить
активен, то это регистрируется при попытке пользователя завершить работу:
26 декабря 21:41:18 t410s gnome-shell [8333]: endSessionDialog: нет XDG_SESSION_ID, получено из logind: 17
26 декабря 21:41:19 t410s gnome-shell [8333]: endSessionDialog: нет XDG_SESSION_ID, получено из logind: 17
26 декабря 21:41:22 t410s gnome-session [8314]: gnome-session-binary [8314]: ПРЕДУПРЕЖДЕНИЕ: Ошибка завершения работы: GDBus.Error:System.Error.ESTALE: дескриптор устаревшего файла
26 декабря 21:41:22 t410s gnome-session-binary [8314]: ПРЕДУПРЕЖДЕНИЕ: Ошибка завершения работы: GDBus.Error:System.Error.ESTALE: дескриптор устаревшего файла
26 декабря 21:41:22 t410s gnome-session-binary [8314]: вход в рабочее состояние
26 декабря 21:41:22 t410s gnome-shell [8333]: проигнорированное исключение из метода dbus: Gio.IOErrorEnum: GDBus.Error:org.gtk.GDBus.UnmappedGError.Quark._g_2dio_2derror_2dquark.Code19:
Любая идея, как отобразить сообщение о том, что резервное копирование выполняется?
РЕДАКТИРОВАТЬ: Как предложил @matigo, я реализовал обходной путь, чтобы отображать разные обои во время резервного копирования, и надеюсь на лучшее...