5

Когда я выключаю свой компьютер, я хочу показать некоторые незавершенные задачи, которые я должен выполнить, прежде чем покинуть офис.

У меня есть локальное приложение для управления этими задачами, поэтому в основном я просто хочу запустить команду и завершить работу после того, как я уничтожу выполненное приложение.

Я уже пробовал с этими вариантами:

/etc/gdm/PostSession/Default

Это работает только тогда, когда я выбираю опцию LogOut вместо Shutdown.

/etc/rc0.d/K01mycustomscript

Выполнить скрипт после того, как X убит.

$HOME/.bash_logout

Похоже, это ничего не делает.

./app-to-run && sudo shutdown -h now

Мне это не нравится по двум причинам: он запрашивает пароль sudo, и я не могу использовать кнопку выключения своего ноутбука.

Я использую Ubuntu 10.04.

5 ответов5

1

Проверьте /etc/rc0.d/README - там написано

The scripts in this directory are executed once when entering
runlevel 0.

The scripts are all symbolic links whose targets are located in
/etc/init.d/ .

Generally it is not necessary to alter the scripts in this directory.
Their purpose is to stop all services and to make the system ready
for shutdown.

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

1

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

1
  • /etc/rc0.d/K01mycustomscript возможно, должен быть /etc/rc0.d/S01mycustomscript
  • убедитесь, что он исполняемый (chmod 755 /etc/rc0.d/K01mycustomscript или chmod 755 /etc/rc0.d/S01mycustomscript)
  • попробуйте выполнить ведение журнала: добавьте в начало вашего сценария регистратор строк logger 'mycustomscript START' и logger 'mycustomscript END' завершите работу, затем найдите сообщения журнала в /var/log/messages
  • обратите внимание, что вместо этого принято создавать сценарий запуска / остановки в /etc/init.d/ , затем создавать символические ссылки на этот сценарий из соответствующих каталогов /etc/rc*.d или использовать такой инструмент, как chkconfig или update-rc.d для поддержки символических ссылок (см. страницу википедии "Init")
  • увидеть этот похожий вопрос
0
  • Поместите свой исполняемый скрипт куда-нибудь - рекомендуется /etc/init.d .
  • Сделайте из этого места символическую ссылку из /etc/rc0.d , начиная с S (чтобы запустить этот скрипт при достижении уровня запуска 0.
  • Я предполагаю, что машина будет ждать завершения этого сценария, прежде чем завершить работу, хотя я никогда не проверял это.
0

работает /etc /gdm /PostSession /Default:

Вы должны "исправить" сценарий выгрузки GDM (или MDM в моем случае):

/etc/init/mdm.conf

строка 15: остановка на уровне выполнения [016]

TO:

остановка при запуске уровня запуска rc [016]

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .