Запустить скрипт с взаимодействием с пользователем при выходе из системы / выключении?

Я хотел бы запустить скрипт при выключении, который прерывает процесс выхода из системы и открывает окно с zenity. Моя цель - заставить autofsck работать с lightdm. Кажется, он работает с 12.04 после установки старого файла * .deb, если запустить скрипт проверки вручную. Чтобы использовать его, он должен автоматически запускаться при выходе из системы и спрашивать пользователя, хочет ли он / она проверить диск при выключении.

В файле /etc/lightdm/lightdm.conf есть опция session-cleanup-script, которая, кажется, работает, если используется bash-файл с полным путем (я не могу разместить команду непосредственно там). Но если я нажму на выключение, у пользователя не будет времени.

Есть ли другой вариант решения этой проблемы?

Редактировать: Кажется, что есть и другие проблемы, особенно с AutoFsck. Сценарий очистки сеанса выполняется, но команда проверки для AutoFsck не выполняет , а не запускается.

4
задан 11 July 2012 в 21:50

1 ответ

Я полагаю, что на Ваш вопрос завершения работы/выключения питания (более или менее) отвечают здесь:

При рассмотрении ответа, предоставленного там, я хотел бы настраивать/разрабатывать/суммировать Вас, вероятно, нуждаются в обоих, для использования сценария очистки сессии, таким образом, что X не умрет, прежде чем можно будет ответить и выполнить задание, и новое, небольшое /etc/init.d/ сценарий на достаточно высоком уровне выполнения, чтобы 'заблокировать' закрытие до Вашего сценария очистки сессии вызвал сценарий AutoFsck, завершается.

Таким образом:

  1. Добавьте к сценарию очистки сессии, устанавливающему флаг через'touch /etc/noreboot'(или подобный), который очищен Вашим сценарием выполнения вызова AutoFsck (т.е. удаляют/etc/noreboot файл при ответе не, или если да, удаленный только после того, как AutoFsck завершается).

  2. Ваше новое /etc/init.d сценарий должен проверить на существование/etc/noreboot и если это существует, проверяйте снова каждую секунду или два в некоторое время цикле, пока файл не удален. Однажды /etc/noreboot не существуется, сценарий может завершить и позволить остальной части процесса завершения работы продолжаться. Снова, ключ здесь должен удостовериться init.d выполнения сценария перед завершением работы lightdm или любыми другими X выполнениями завершения работы.

С тех пор X должен все еще работать в то время как /etc/noreboot проверьте, что сценарий в init.d работает, можно также отправить X сообщений в экран, говоря, что завершение работы заблокировано, ожидая удаления файла. Это небольшое сообщение неприятности могло бы пригодиться если /etc/noreboot файл не очищен по некоторым причинам, предотвратив Вашу систему от корректного завершения работы.

1
ответ дан 11 July 2012 в 21:50

Другие вопросы по тегам:

Похожие вопросы: