При завершении работы перед установкой аварийного сигнала отключите накопители?

Поэтому, основываясь на моем понимании процесса выключения Unix / Linux (который очень ограничен, я допускаю), я думаю, что в какой-то момент эти шаги происходят: 1. смонтированные диски размонтируются 2. сигнал завершения отправляется в запущенные приложения, что позволяет приложения для очистки перед выходом

Теперь, что происходит первым? Или № 1 вообще не происходит? Или заказ не гарантирован?

Причина, по которой я задаю этот вопрос, заключается в том, что я работаю над приложением, которое записывает данные в центральный файл конфигурации при выключении, где центральный файл конфигурации может быть размещен в любом месте. Я обеспокоен тем, что если центральный файл конфигурации находится на смонтированном диске, а # 1 – до # 2, то сохраненный путь, который у меня есть для центрального файла конфигурации, может быть более недействительным. Это имеет смысл?

  • Труба всех приостановленных процессов, чтобы убить
  • Что такое сигнальные ловушки?
  • Ctrl + c и Ctrl + z для прерывания / приостановки заданий
  • Почему компиляция функции ловушки позволяет управлять c-с?
  • тайм-аут
  • Можно ли отслеживать, откуда пришел SIGINT, если это не от пользователя?
  • Может ли Ctrl + C отправить сигнал SIGINT нескольким процессам?
  • Ловушка ctrl c не работает как ожидалось
  • One Solution collect form web for “При завершении работы перед установкой аварийного сигнала отключите накопители?”

    Это зависит от системы init и от того, как она настроена. Но любая нормальная конфигурация позволяет системному программному обеспечению регистрировать крюк для запуска при завершении работы. С традиционным System V init, это файл в файле /etc/rc0.d . С традиционным BSD init, это код в /etc/rc.shutdown . С Upstart это событие изменения уровня запуска до 0 или 6. Список продолжается, поэтому поддержка пакетов для всех дистрибутивов там может быть большой частью работы (большинство авторов предоставили бы скрипт завершения работы для своего приложения и диспетчер распространения делает пакет, который регистрирует сценарий завершения работы в нужном месте).

    После того, как все сценарии приложения будут выполнены, завершатся заключительные этапы завершения работы. Как правило, это включает в себя размонтирование всех файловых систем, кроме тех, где есть все еще открытые файлы, а затем уничтожения всех оставшихся процессов и, наконец, размонтирование оставшихся файловых систем (кроме корневого каталога, который повторно монтируется только для чтения) и остановки или перезагрузки компьютера. Обычно посылают все процессы на сигнал TERM, который является захватывающим, а затем через несколько секунд посылает сигнал KILL. Хотя процесс может попытаться отреагировать, время ограничено, и система не будет ждать.

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

    Обратите внимание, что в любом случае вы должны грациозно справляться с сбоем системы или сбоем питания. Действия Shutdown-time должны быть ограничены вещами, которые делают следующую загрузку более эффективной, не должно быть ничего, что абсолютно необходимо сделать.

    Interesting Posts

    Производительность протоколов в встроенной Linux

    Внешний атрибут файла формата zip

    nginx отправлять журнал на удаленный сервер syslog

    Как получить имя папки с помощью шаблона и проверить его уникальность

    Жесткие диски пропадают без перезагрузки – что может быть причиной?

    Как получить дополнительную информацию о загрузочном сообщении «Ожидание / dev для полного заполнения»

    Может показывать на экране nl (новая строка) для каждого (возврат каретки)

    Arch Linux openSSH часто отключает соединение

    В чем разница между «и»?

    Аргументы сценария Bash не передаются функции?

    Сохранить количество строк, выводимых в переменную в сценарии оболочки, не потребляя выход

    Как установить Canon PIXMA MX882 с использованием CUPS 1.4.8 в Puppy Linux Precise 5.7.1

    Нулевые и escape-символы

    Возможно ли динамическое изменение параметра -limit-rate curl?

    Слияние файлов PDF и автоматическое создание оглавления с каждым файлом в виде записи

    Linux и Unix - лучшая ОС в мире.