Я настроил систему Debian на своем нетбуке так, чтобы она выключалась, когда батарея садится слишком низко. Проблема в том, что выключение убивает все запущенные приложения, не давая им возможности сохранить какой-либо документ, над которым я работаю.
Я хотел бы написать скрипт, который «мягко» закроет все открытые приложения перед тем, как сработает выключение, но я не могу найти способ транслировать сообщение «Закрыть» всем запущенным приложениям в Gnome. Есть ли способ?
Спасибо.
EDIT: Гибернация не работает на моем нетбуке, поэтому я не могу использовать ее в качестве альтернативного решения.
решение1
Выключение мягко "закроет" (SIGTERM) все открытые приложения, давая возможность завершиться изящно. Затем, через некоторое время, если процесс не отвечает, произойдет жесткое завершение (SIGKILL) - не давая временизакрыватьфайлы или, что еще важнее, базы данных.
Завершение работы — это автономная процедура. Она не должна реагировать на действия пользователя. Поэтому она не позволяет пользователю сохранять данные заранее. Вот почему и emacs, и vi(m) имеют файлы восстановления. Проверьте, есть ли в ваших приложениях функция автоматического сохранения. По большей части, старая поговорка «Сохраняйте рано, сохраняйте часто» звучит так.
Вы думали изменить настройки питания, чтобы системавпадать в спячку? Это сохранит состояние системы (включая запущенные программы) для следующего запуска.
решение2
Вы можете попросить gnome закрыть текущую сессию перед выключением. Что-то вроде:
gnome-session-quit --logout --no-prompt
shutdown -h now
Синтаксис команды может меняться в зависимости от версии gnome (например gnome-session-quit
,новыйИмя gnome-session-save
).
Принудительное --no-prompt
завершение работы приложений без подтверждения пользователя.