Рейтинг:1

systemd завершает службу etcd, запущенную с помощью podman — прием разрешен только для основного PID

флаг jp

я пытаюсь начать и т. д. как служба systemd запускается в контейнере с подман.

После запуска я получаю этот журнал ошибок от systemd:

systemd[1]: etcd.service: получено уведомление от PID 4696, но прием разрешен только для основного PID 4868

Но etcd, кажется, может начать попытку уведомить демона контейнера:

21T15:31:08.817Z","вызывающий":"etcdserver/server.go:2500","msg":"версия кластера>
21 августа 15:31:08 ip-10-0-0-71 podman[4696]: {"level":"info","ts":"2021-08-21T15:31:08.817Z","вызывающий" :"etcdmain/main.go:47","msg":"уведомление демона инициализации>
21 августа 15:31:08 ip-10-0-0-71 podman[4696]: {"level":"info","ts":"2021-08-21T15:31:08.818Z","вызывающий" :"etcdmain/main.go:53","msg":"уведомление успешно>

Но systemd, похоже, не знает об этом и завершает службу etcd:

21 августа, 15:32:34 ip-10-0-0-71 systemd[1]: etcd.service: время ожидания начала операции истекло. Прекращение.
21 августа 15:32:35 ip-10-0-0-71 podman[4696]: {"level":"info","ts":"2021-08-21T15:32:35.000Z","звонящий" :"osutil/interrupt_unix.go:64","msg":"знак получен>
21 августа 15:32:35 ip-10-0-0-71 podman[4696]: {"level":"info","ts":"2021-08-21T15:32:35.000Z","звонящий" :"embed/etcd.go:367","msg":"закрытие сервера etcd","n>

Это статус службы systemd:

$ sudo systemctl статус etcd.service
etcd.service - etcd
     Загружено: загружено (/etc/systemd/system/etcd.service; включено; предустановка поставщика: включена)
     Активно: сбой (результат: тайм-аут) с субботы 21 августа 2021 г. 15:32:35 UTC; 8 минут назад
    Процесс: 4868 ExecStart=/usr/bin/podman run -p 2380:2380 -p 2379:2379 --volume=/var/lib/etcd:/etcd-data:z --name etcd 842445240665.dkr.ecr.eu -норд>
   Основной PID: 4868 (код=выход, статус=0/УСПЕХ)
        ЦП: 3,729 с

Это мой сервисный файл системного модуля для etcd, запущенный с помощью podman:

кошка <<ЕОФ | sudo тройник /etc/systemd/system/etcd.service
[Ед. изм]
Описание=и т.д.
После = podman_ecr_login.service mk_etcd_data_dir.service

[Оказание услуг]
Тип=уведомить
ExecStart=/usr/bin/podman run -p 2380:2380 -p 2379:2379 --volume=/var/lib/etcd:/etcd-data:z \
 --name etcd <мой-aws-аккаунт>.dkr.ecr.eu-north-1.amazonaws.com/etcd:v3.5.0 \
 /usr/local/bin/etcd --data-dir=/etcd-данные \
 --имя etcd0 \
 --advertise-client-urls http://127.0.0.1:2379 \
 --listen-client-urls http://0.0.0.0:2379 \
 --initial-advertise-peer-urls http://127.0.0.1:2380 \
 --listen-peer-urls http://0.0.0.0:2380 \
 --initial-cluster etcd0=http://127.0.0.1:2380

[Установить]
WantedBy=многопользовательская.цель
EOF

sudo systemctl включить etcd
sudo systemctl запустить etcd

Я подозреваю, что это может быть связано с Тип=уведомить или, возможно, то, как я использую podman или etcd. Я запускаю etcd аналогично описанному в документации etcd: Запуск кластеров etcd внутри контейнеров — Запуск одного узла etcd. Я запускаю это на Debian 11 с Podman 3.0.1.

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

Рейтинг:0
флаг jp

Согласно этому опубликовать комментарий, эти службы должны запускаться как Тип=простой так как они не возвращают сигнал systemd. Этот пиар для podman установить его на Тип=exec которые также, кажется, работают хорошо.

После изменения на Тип=exec в моем файле сервисного модуля теперь работает:

$ sudo systemctl статус etcd.service
etcd.service - etcd
     Загружено: загружено (/etc/systemd/system/etcd.service; включено; предустановка поставщика: включена)
     Активен: активен (работает) с сб 21 августа 2021 г., 15:59:23 UTC; 1 мин 28 с назад
   Основной PID: 4662 (подман)
      Заданий: 11 (лимит: 442)
     Память: 137,9 Мб
        ЦП: 3,576 с
     Группа CG: /system.slice/etcd.service
             ââ4662 /usr/bin/podman run -p 2380:2380 -p 2379:2379 --volume=/var/lib/etcd:/etcd-data:z --name etcd <my-aws- аккаунт>.dkr.ecr.eu-north-1.amaz>
             ââ4846 /usr/bin/conmon --api-version 1 -c 616b317dc255ca86b308857dc6a180510fc166975a8a28437f3434111f03e7ad -u 616b317dc255ca86b308857dc6a>
флаг in
Может быть, с Podman 3.3.0 что-то изменилось? Цитата из [примечаний к выпуску Podman v3.3.0] (https://github.com/containers/podman/releases/tag/v3.3.0) (выпущено в августе 2021 г.) уведомлять по умолчанию вместо использования файлов PID._ . Похоже, что поддержка `Type=notify` в _etcd_ присутствует: [main.go](https://github.com/etcd-io/etcd/blob/6a32bbad756b656da23af007ac4a0256b3dab7b5/server/etcdmain/main.go#L48) [etcd .service](https://github.com/etcd-io/etcd/blob/main/contrib/systemd/etcd.service)
флаг jp
@ErikSjölund Интересно! Спасибо!

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

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