Как разрешить задачу Upstart блокировать загрузку системы?

Я пишу задачу Upstart, которая выполняется на уровне выполнения 1.

Это для зашифрованной системы, и задача задачи заключается в проверке целостности MBR & amp; / Загрузки. Таким образом, важно, чтобы эта задача выполнялась как можно раньше во время загрузки системы (поэтому я выбрал уровень запуска 1).

В 99% случаев эта задача будет просто выйти молча, но если она обнаружит любая проблема, ему нужен способ дать знать пользователю и в идеале приостановить загрузку системы до тех пор, пока пользователь не подтвердит.

Я пробовал следующее в качестве теста, но я не могу прерывать загрузку системы. Любые предложения?

начинают с уровня запуска [1] exec echo -n «Предупреждение: MBR и / или / boot изменены. Нажмите любую клавишу, чтобы продолжить». exec read console output

Спасибо заранее!

1
задан 14 May 2011 в 17:02

8 ответов

vonbraun, runlevels означают что-то совсем другое, чем они привыкли, поэтому я не верю, что уровень запуска 1 на самом деле вы хотите.

Синус, который вы хотите запустить как можно скорее, есть два варианта.

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

start on mounting MOUNTPOINT=/

Событие монтажа является «крюком», поэтому mountall будет ждать все, что его использует, чтобы разблокировать. Вы обязательно должны использовать ключевое слово «задача», чтобы ваши проверки могли выполняться полностью до того, как mountall будет разблокирован.

В этот момент при загрузке корневая файловая система остается только в режиме «только для чтения», но должна быть доступна. Другие файловые системы могут быть недоступны, поэтому имейте в виду (/ var / run, в частности, может быть сложно таким образом). Не используйте «И» с другим монтажным событием, так как это заблокирует загрузку.

Если вам нужно записать в корневой FS, вы можете использовать

start on mounted MOUNTPOINT=/

Это блокирует mountall снова, но после / перемонтируется read-write. Это должно помешать появлению в результате сигналов, из-за которых происходят другие части загрузки.

Здесь нет никаких гарантий, некоторые другие будут происходить параллельно. Однако не загрузки будет задерживаться, ожидая доступа к файловой системе, и в указанном сценарии это похоже на желаемый результат.

Обратите внимание, что существует много хорошие связанные идеи в кулинарной книге Upstart

http://upstart.ubuntu.com/cookbook/

Удачи!

2
ответ дан 25 July 2018 в 21:55

vonbraun, runlevels означают что-то совсем другое, чем они привыкли, поэтому я не верю, что уровень запуска 1 на самом деле вы хотите.

Синус, который вы хотите запустить как можно скорее, есть два варианта.

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

start on mounting MOUNTPOINT=/

Событие монтажа является «крюком», поэтому mountall будет ждать все, что его использует, чтобы разблокировать. Вы обязательно должны использовать ключевое слово «задача», чтобы ваши проверки могли выполняться полностью до того, как mountall будет разблокирован.

В этот момент при загрузке корневая файловая система остается только в режиме «только для чтения», но должна быть доступна. Другие файловые системы могут быть недоступны, поэтому имейте в виду (/ var / run, в частности, может быть сложно таким образом). Не используйте «И» с другим монтажным событием, так как это заблокирует загрузку.

Если вам нужно записать в корневой FS, вы можете использовать

start on mounted MOUNTPOINT=/

Это блокирует mountall снова, но после / перемонтируется read-write. Это должно помешать появлению в результате сигналов, из-за которых происходят другие части загрузки.

Здесь нет никаких гарантий, некоторые другие будут происходить параллельно. Однако не загрузки будет задерживаться, ожидая доступа к файловой системе, и в указанном сценарии это похоже на желаемый результат.

Обратите внимание, что существует много хорошие связанные идеи в кулинарной книге Upstart

http://upstart.ubuntu.com/cookbook/

Удачи!

2
ответ дан 26 July 2018 в 17:49

vonbraun, runlevels означают что-то совсем другое, чем они привыкли, поэтому я не верю, что уровень запуска 1 на самом деле вы хотите.

Синус, который вы хотите запустить как можно скорее, есть два варианта.

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

start on mounting MOUNTPOINT=/

Событие монтажа является «крюком», поэтому mountall будет ждать все, что его использует, чтобы разблокировать. Вы обязательно должны использовать ключевое слово «задача», чтобы ваши проверки могли выполняться полностью до того, как mountall будет разблокирован.

В этот момент при загрузке корневая файловая система остается только в режиме «только для чтения», но должна быть доступна. Другие файловые системы могут быть недоступны, поэтому имейте в виду (/ var / run, в частности, может быть сложно таким образом). Не используйте «И» с другим монтажным событием, так как это заблокирует загрузку.

Если вам нужно записать в корневой FS, вы можете использовать

start on mounted MOUNTPOINT=/

Это блокирует mountall снова, но после / перемонтируется read-write. Это должно помешать появлению в результате сигналов, из-за которых происходят другие части загрузки.

Здесь нет никаких гарантий, некоторые другие будут происходить параллельно. Однако не загрузки будет задерживаться, ожидая доступа к файловой системе, и в указанном сценарии это похоже на желаемый результат.

Обратите внимание, что существует много хорошие связанные идеи в кулинарной книге Upstart

http://upstart.ubuntu.com/cookbook/

Удачи!

2
ответ дан 2 August 2018 в 03:30

vonbraun, runlevels означают что-то совсем другое, чем они привыкли, поэтому я не верю, что уровень запуска 1 на самом деле вы хотите.

Синус, который вы хотите запустить как можно скорее, есть два варианта.

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

start on mounting MOUNTPOINT=/

Событие монтажа является «крюком», поэтому mountall будет ждать все, что его использует, чтобы разблокировать. Вы обязательно должны использовать ключевое слово «задача», чтобы ваши проверки могли выполняться полностью до того, как mountall будет разблокирован.

В этот момент при загрузке корневая файловая система остается только в режиме «только для чтения», но должна быть доступна. Другие файловые системы могут быть недоступны, поэтому имейте в виду (/ var / run, в частности, может быть сложно таким образом). Не используйте «И» с другим монтажным событием, так как это заблокирует загрузку.

Если вам нужно записать в корневой FS, вы можете использовать

start on mounted MOUNTPOINT=/

Это блокирует mountall снова, но после / перемонтируется read-write. Это должно помешать появлению в результате сигналов, из-за которых происходят другие части загрузки.

Здесь нет никаких гарантий, некоторые другие будут происходить параллельно. Однако не загрузки будет задерживаться, ожидая доступа к файловой системе, и в указанном сценарии это похоже на желаемый результат.

Обратите внимание, что существует много хорошие связанные идеи в кулинарной книге Upstart

http://upstart.ubuntu.com/cookbook/

Удачи!

2
ответ дан 4 August 2018 в 19:28

vonbraun, runlevels означают что-то совсем другое, чем они привыкли, поэтому я не верю, что уровень запуска 1 на самом деле там, где вы хотите быть.

Синус, который вы хотите запустить как можно скорее, есть два варианта.

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

  начать с монтажа  MOUNTPOINT = /  

Событие монтажа - это «крючок», поэтому mountall будет ждать все, что его использует, чтобы разблокировать. Вы обязательно должны использовать ключевое слово «задача», чтобы ваши проверки могли выполняться полностью до того, как mountall будет разблокирован.

На этом этапе загрузки корневая файловая система все еще доступна только для чтения, но должна быть доступна. Другие файловые системы могут быть недоступны, поэтому имейте в виду (/ var / run, в частности, может быть сложно таким образом). [D3] not использовать «AND» с другим событием монтирования, поскольку это заблокирует загрузку.

Если вам нужно записать в корневой FS, вы можете использовать

  начать с монтируемого MOUNTPOINT = /  

Это снова заблокирует mountall, но после / будет повторно установлено чтение-запись. Это должно предотвратить появление в результате сигналов, которые могут вызывать другие части загрузки.

Здесь нет никаких гарантий, хотя некоторые другие вещи будут происходить параллельно. Однако большинство загрузки будут задержаны, ожидая доступа к файловой системе, и в указанном сценарии это похоже на желаемый результат.

Обратите внимание, что есть много хорошие ссылки в кулинарной книге Upstart

http://upstart.ubuntu.com/cookbook/

Удачи!

2
ответ дан 6 August 2018 в 03:38

vonbraun, runlevels означают что-то совсем другое, чем они привыкли, поэтому я не верю, что уровень запуска 1 на самом деле там, где вы хотите быть.

Синус, который вы хотите запустить как можно скорее, есть два варианта.

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

  начать с монтажа  MOUNTPOINT = /  

Событие монтажа - это «крючок», поэтому mountall будет ждать все, что его использует, чтобы разблокировать. Вы обязательно должны использовать ключевое слово «задача», чтобы ваши проверки могли выполняться полностью до того, как mountall будет разблокирован.

На этом этапе загрузки корневая файловая система все еще доступна только для чтения, но должна быть доступна. Другие файловые системы могут быть недоступны, поэтому имейте в виду (/ var / run, в частности, может быть сложно таким образом). [D3] not использовать «AND» с другим событием монтирования, поскольку это заблокирует загрузку.

Если вам нужно записать в корневой FS, вы можете использовать

  начать с монтируемого MOUNTPOINT = /  

Это снова заблокирует mountall, но после / будет повторно установлено чтение-запись. Это должно предотвратить появление в результате сигналов, которые могут вызывать другие части загрузки.

Здесь нет никаких гарантий, хотя некоторые другие вещи будут происходить параллельно. Однако большинство загрузки будут задержаны, ожидая доступа к файловой системе, и в указанном сценарии это похоже на желаемый результат.

Обратите внимание, что есть много хорошие ссылки в кулинарной книге Upstart

http://upstart.ubuntu.com/cookbook/

Удачи!

2
ответ дан 7 August 2018 в 21:28

vonbraun, runlevels означают что-то совсем другое, чем они привыкли, поэтому я не верю, что уровень запуска 1 на самом деле там, где вы хотите быть.

Синус, который вы хотите запустить как можно скорее, есть два варианта.

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

  начать с монтажа  MOUNTPOINT = /  

Событие монтажа - это «крючок», поэтому mountall будет ждать все, что его использует, чтобы разблокировать. Вы обязательно должны использовать ключевое слово «задача», чтобы ваши проверки могли выполняться полностью до того, как mountall будет разблокирован.

На этом этапе загрузки корневая файловая система все еще доступна только для чтения, но должна быть доступна. Другие файловые системы могут быть недоступны, поэтому имейте в виду (/ var / run, в частности, может быть сложно таким образом). [D3] not использовать «AND» с другим событием монтирования, поскольку это заблокирует загрузку.

Если вам нужно записать в корневой FS, вы можете использовать

  начать с монтируемого MOUNTPOINT = /  

Это снова заблокирует mountall, но после / будет повторно установлено чтение-запись. Это должно предотвратить появление в результате сигналов, которые могут вызывать другие части загрузки.

Здесь нет никаких гарантий, хотя некоторые другие вещи будут происходить параллельно. Однако большинство загрузки будут задержаны, ожидая доступа к файловой системе, и в указанном сценарии это похоже на желаемый результат.

Обратите внимание, что есть много хорошие ссылки в кулинарной книге Upstart

http://upstart.ubuntu.com/cookbook/

Удачи!

2
ответ дан 10 August 2018 в 09:45

vonbraun, runlevels означают что-то совсем другое, чем они привыкли, поэтому я не верю, что уровень запуска 1 на самом деле там, где вы хотите быть.

Синус, который вы хотите запустить как можно скорее, есть два варианта.

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

  начать с монтажа  MOUNTPOINT = /  

Событие монтажа - это «крючок», поэтому mountall будет ждать все, что его использует, чтобы разблокировать. Вы обязательно должны использовать ключевое слово «задача», чтобы ваши проверки могли выполняться полностью до того, как mountall будет разблокирован.

На этом этапе загрузки корневая файловая система все еще доступна только для чтения, но должна быть доступна. Другие файловые системы могут быть недоступны, поэтому имейте в виду (/ var / run, в частности, может быть сложно таким образом). [D3] not использовать «AND» с другим событием монтирования, поскольку это заблокирует загрузку.

Если вам нужно записать в корневой FS, вы можете использовать

  начать с монтируемого MOUNTPOINT = /  

Это снова заблокирует mountall, но после / будет повторно установлено чтение-запись. Это должно предотвратить появление в результате сигналов, которые могут вызывать другие части загрузки.

Здесь нет никаких гарантий, хотя некоторые другие вещи будут происходить параллельно. Однако большинство загрузки будут задержаны, ожидая доступа к файловой системе, и в указанном сценарии это похоже на желаемый результат.

Обратите внимание, что есть много хорошие ссылки в кулинарной книге Upstart

http://upstart.ubuntu.com/cookbook/

Удачи!

2
ответ дан 13 August 2018 в 15:59

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

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