Этот вопрос касается сценария, который удерживает блокировку для предотвращения нескольких одновременно выполняемых экземпляров самого себя, который выполняется в определенное время различными процессами и который отправляет команды перезагрузки в определенных ситуациях.
Предположим, что требуется перезагрузка, и сценарий спит несколько секунд (чтобы предотвратить снятие блокировки до того, как перезагрузка вступит в силу). Затем сценарий получит сигнал и завершит свою работу (и этим снимет блокировку).
Вопрос: Есть ли возможное временное окно, в котором этот сценарий уже остановлен событием перезагрузки, и все же запущены некоторые другие процессы, которым удается снова запустить сценарий?
Лично я чувствую, что системы Linux сначала переключаются в некое состояние, в котором выполнение новых процессов вообще запрещено, а после этого запущенные процессы останавливаются. Но это только желаемое за действительное, поскольку я не могу найти документацию по этому поводу.
Некоторые уточнения:
а) Дело не в том, что файл блокировки не удаляется должным образом. Поскольку я использую flock, блокировка исчезает в тот момент, когда скрипт завершается, даже в случае сбоев.
б) В большинстве случаев скрипт запускается с правами root от atamon.