Upstart: остановка на уровне выполнения [016] vs остановка при запуске rc RUNLEVEL = [016]

Итак, я работаю над сценарием инициализации выскочки для mysql.Должно быть тривиально, правда? Моя остановка выглядит так:

kill timeout 30
stop on runlevel [016]

I shutdown now -r , и mysql кричит о том, что мои таблицы MyISAM разбиты, точно так же, как я kill -9 'd мой процесс mysql . Бу. Upstart, похоже, не ждет завершения работы mysql перед перезапуском. Некоторые поисковые запросы в Google находят меня по этой ссылке , предлагая вместо этого:

stop on starting rc RUNLEVEL=[016]

и действительно, похоже, это решает проблему.

Но: WFT? По сути, я хочу убедиться, что mysql остановлен, прежде чем пытаться размонтировать локальные файловые системы. Это правильный способ сделать это? Почему мой раздел stop на уровне выполнения не ожидает остановки mysql перед переключением уровней выполнения?

И: это, знаете ли, где-нибудь задокументировано?

5
задан 13 April 2017 в 15:22
1 ответ

Проблема, которую он фактически вызвал гибкостью Upstarts в обработке как заданий Upstart, так и служб SystemV в Ubuntu.

Для получения информации о событиях, хорошее место для поиска - это страницы руководства вашей системы . Если вы используете Ubuntu Natty или новее, теперь у вас будут upstart-events (7):

man 7 upstart-events

Это дает вам много информации. Вот онлайн-версия (большей части) этой справочной страницы:

http://upstart.ubuntu.com/cookbook/#ubuntu-well-known-events-ubuntu-specific

В настоящее время завершение работы Ubuntu Система фактически доработана SysV (по историческим причинам). Если вы « остановить на уровне выполнения [016] », ваше задание будет запускаться , чтобы остановиться, когда это событие уровня выполнения будет сгенерировано. Однако, если это займет слишком много времени, часть системы SystemV ( /etc/init.d / * ) фактически возьмет на себя управление и завершит работу системы. Принимая во внимание, что если вы ' остановитесь при запуске rc RUNLEVEL = [016] ', Upstart (не SystemV) запустит ваше задание и после остановки mysql , тогда продолжайте запускать последовательность завершения работы SystemV.

Поваренная книга Upstart содержит множество примеров вроде этого:

5
ответ дан 3 December 2019 в 01:39

Теги

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