Я хотел бы запустить скрипт при выключении, который прерывает процесс выхода из системы и открывает окно с zenity
. Моя цель - заставить autofsck работать с lightdm. Кажется, он работает с 12.04 после установки старого файла * .deb, если запустить скрипт проверки вручную. Чтобы использовать его, он должен автоматически запускаться при выходе из системы и спрашивать пользователя, хочет ли он / она проверить диск при выключении.
В файле /etc/lightdm/lightdm.conf
есть опция session-cleanup-script
, которая, кажется, работает, если используется bash-файл с полным путем (я не могу разместить команду непосредственно там). Но если я нажму на выключение, у пользователя не будет времени.
Есть ли другой вариант решения этой проблемы?
Редактировать: Кажется, что есть и другие проблемы, особенно с AutoFsck. Сценарий очистки сеанса выполняется, но команда проверки для AutoFsck не выполняет , а не запускается.
Я полагаю, что на Ваш вопрос завершения работы/выключения питания (более или менее) отвечают здесь:
При рассмотрении ответа, предоставленного там, я хотел бы настраивать/разрабатывать/суммировать Вас, вероятно, нуждаются в обоих, для использования сценария очистки сессии, таким образом, что X не умрет, прежде чем можно будет ответить и выполнить задание, и новое, небольшое /etc/init.d/
сценарий на достаточно высоком уровне выполнения, чтобы 'заблокировать' закрытие до Вашего сценария очистки сессии вызвал сценарий AutoFsck, завершается.
Таким образом:
Добавьте к сценарию очистки сессии, устанавливающему флаг через'touch /etc/noreboot
'(или подобный), который очищен Вашим сценарием выполнения вызова AutoFsck (т.е. удаляют/etc/noreboot файл при ответе не, или если да, удаленный только после того, как AutoFsck завершается).
Ваше новое /etc/init.d
сценарий должен проверить на существование/etc/noreboot и если это существует, проверяйте снова каждую секунду или два в некоторое время цикле, пока файл не удален. Однажды /etc/noreboot
не существуется, сценарий может завершить и позволить остальной части процесса завершения работы продолжаться. Снова, ключ здесь должен удостовериться init.d выполнения сценария перед завершением работы lightdm или любыми другими X выполнениями завершения работы.
С тех пор X должен все еще работать в то время как /etc/noreboot
проверьте, что сценарий в init.d работает, можно также отправить X сообщений в экран, говоря, что завершение работы заблокировано, ожидая удаления файла. Это небольшое сообщение неприятности могло бы пригодиться если /etc/noreboot
файл не очищен по некоторым причинам, предотвратив Вашу систему от корректного завершения работы.