Рейтинг:1

Как отправить сообщение об ожидающем завершении работы в службы systemd

флаг za

Я использую Fedora CoreOS с включенным автоматическим средством обновления, что отлично подходит для моего варианта использования. Уже при интерактивном входе в систему система предупреждает о скором выключении/перезагрузке через консоль с теми же механизмами, которые описаны в ответах типа Отправка сообщений о завершении работы всем клиентам с сервера

Однако «настоящими» пользователями этого сервера являются не пользователи Linux с доступом по SSH, а серверы доступа, такие как IRC или другие службы. Я хотел бы «поймать» предупреждающее сообщение о завершении работы и переслать его каждой из служб, s.t. они могут транслировать это.

Службы организованы с использованием непривилегированных контейнеров podman/docker, запускаемых через systemd (podman-генерировать-systemd) пользовательские единицы.

Я могу (ab) использовать ExecStopPre установка в блоке systemd на всегда спать 5м перед выключением агрегата. Это не совсем то, что я хочу, так как я хотел бы иметь возможность немедленно перезапускать/останавливать службу, когда это делается вручную с помощью systemctl --user остановить/перезапустить.

В настоящее время я вижу два пути, которые могли бы включить это:

  1. какой-то способ для юнитов прослушивать сообщения на стене и пересылать их
  2. какой-то способ указать --игнорировать ExecStopPre на консоли.

Последнее может быть достигнуто, хотя и неэргономично, с помощью systemctl --user edit --runtime. Тем не менее, второй подход имеет время простоя (ab) использования ExecStopPre, хотя он уже может понадобиться для других целей.

Тем не менее, я был бы рад получить идеи о том, как добиться (1) или сделать (2) более приятной для работы. Или даже совершенно разные подходы к проблеме.

флаг in
Может быть, используя `After=final.target`, как в https://unix.stackexchange.com/a/479048? (Просто дикое предположение. Я сам не использовал его)
ljrk avatar
флаг za
@ErikSjölund Спасибо, я не знал об этом параметре, но, я думаю, если система уже перемонтирована как r/o, служба больше не сможет сохранять текущее состояние на диск.

Ответить или комментировать

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