Каковы возможные причины ошибки systemd «Не удалось поставить в очередь OnFailure = job: тупиковая ситуация ресурса предотвращена»?

Мои задачи systemd onFailure не удалось запустить, и я вижу это в журнале system :

: Не удалось поставить в очередь OnFailure = job: Взаимоблокировка ресурсов предотвращена

Каковы возможные причины, которые могут вызвать это сообщение и помешать выполнению моей задачи OnFailure = ?

Я использую systemd v229

0
30.05.2017, 18:14
2 ответа

Здесь происходит следующее: :Вы запускаете shutdown.target, systemd использует для него режим задания «заменить -безвозвратно». Блок выходит из строя, потому что эта цель конфликтует со всеми остальными блоками и вызывает для них остановку. Между тем, ваш модуль должен выйти из строя, поэтому он запускает OnFailure= unit. Теперь, по умолчанию, это также Conflicts= с shutdown.target, следовательно, вызовет для него остановку. Но, поскольку режим задания был необратимо заменен -, он не может отменить это задание и заменить его, и systemd считает, что это конфликтующая транзакция, поэтому она прерывается. Сбой задания менеджера _добавить _и эта ошибка шины сопоставляется с EDEADLK errno, поэтому вы видите строку предотвращения взаимоблокировки ресурсов.

2
28.01.2020, 02:45

Это может быть вызвано конфигурацией системы, предназначенной для загрузки системы, выполнения одной задачи и последующего отключения. Служба systemd, которая также содержит сбойную задачу OnFailure=, может также содержать:

ExecStopPost=/usr/bin/sudo /sbin/poweroff

Существует тупиковая ситуация, в которой для завершения выключения устройства необходимы команды отключения питания. Но чтобы команда poweroff завершила работу, она должна остановить устройство.

Между тем, задание OnFailure= пытается запуститься, пока возникает тупиковая ситуация.

В конечном счете, кажется, что действие poweroff вскоре «побеждает» тупиковую ситуацию, а также предотвращает запуск задачи OnFailure=.

Альтернативным решением для AWS является установка сигнала тревоги CloudWatch для экземпляра. У сигнала тревоги будет опция «Выполнить действие: выключение», если максимальная загрузка ЦП на экземпляре меньше 1% ЦП в течение 15 минут.

0
28.01.2020, 02:45

Теги

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