Я пишу Новомодную задачу, которая работает в runlevel 1.
Это для ecrypted системы, и задание задачи состоит в том, чтобы проверить целостность начальной загрузки / и MBR. По сути, важно, чтобы эта задача работала как можно раньше во время начальной загрузки системы (таким образом, я выбрал runlevel 1).
99% времени, из которого эта задача просто выйдет тихо, но если она обнаруживает какую-либо проблему, ей нужен способ сообщить пользователю и идеально приостановить начальную загрузку системы, пока пользователь не подтверждает.
Я попробовал следующее как тест, но я не могу прервать начальную загрузку системы. Какие-либо предложения?
запустите на исполнительном runlevel [1]-n эха "Предупреждение: MBR и/или начальная загрузка / изменяются. Нажмите любую клавишу для продолжения". должностное лицо считало консольный вывод
Заранее спасибо!
vonbraun, уровни запуска означают нечто совсем иное, чем раньше, поэтому я не верю, что уровень запуска 1 действительно там, где вы хотите быть.
Если вы хотите запустить как можно скорее, есть два варианта.
Если вы можете работать без записи в корневую файловую систему, и ваши данные гарантированно находятся в корневой файловой системе, вы можете использовать событие монтирования.
start on mounting MOUNTPOINT=/
Событие монтирования - это «зацепка», поэтому mountall будет ждать чего-либо, что использует его для разблокировки. Вы определенно должны использовать ключевое слово 'task', чтобы ваши проверки могли выполняться полностью до разблокирования mountall.
На этом этапе загрузки корневая файловая система по-прежнему доступна только для чтения, но должна быть доступна. Другие файловые системы могут быть недоступны, поэтому имейте в виду (в частности, / var / run может быть сложным в этом смысле). Не не используйте «И» с другим событием монтирования, поскольку это заблокирует загрузку.
Если вам нужно выполнить запись в корневую ФС, вы можете использовать
start on mounted MOUNTPOINT=/
. Это снова заблокирует монтирование, но после / перемонтируется чтение-запись. Это должно предотвратить возникновение сигналов, которые запускают другие части ботинка.
Здесь нет никаких гарантий, некоторые другие вещи будут происходить параллельно. Однако большая часть загрузки будет задержана в ожидании доступа к файловой системе, и в заявленном сценарии это выглядит как желаемый результат.
Обратите внимание, что в кулинарной книге Upstart много хороших идей
http://upstart.ubuntu.com/cookbook/
Удачи!