Обновить

Мониторинг Supervisord: Упрощение контроля над процессами

Уровень сложностиПростой
Время на прочтение3 мин
Охват и читатели10K
Всего голосов 4: ↑3 и ↓1+2
Комментарии23

Комментарии 23

Вещь нужная. Давно хотел свести панели управления supervisord от нескольких проектов вместе.

НЛО прилетело и опубликовало эту надпись здесь

Не дилетантский. Я зашёл в статью только чтобы оставить именно такой же комментарий, но вы меня опередили на 3 минуты.

Supervisord написан на Python и, чаще всего, запускается всё равно через systemd. До середины 2019 года не было поддержки Python3. последний релиз был в конце 2022 года.

Supervisord может быть запущен не от рута, а также работает на любых дистрибутивах, в том числе там где нет systemd

Разрешите ввязаться с вами в дискуссию. Я, честно признаюсь, сам предпочитаю systemd и немного недолюбливаю supervisor с давних времен. Не знаю как сейчас, но раньше глючен был.

Вот нашёл в википедии страницу с дистрибутивами, на которых systemd не ставится по умолчанию. Возможно, она не полная, конечно.. Но что из этого сейчас реально используется в каком-нибудь продакшене?

Ок, на каком-нибудь роутере, наверное, systemd нет. Но и Python туда ставить тоже смысла немного.

Ну не подходит скрипт на Python для контроля приложений на уровне OS. (я Python-разработчик, если что).

Дистрибутивы без systemd: Void, Gentoo(есть вариант без systemd), Artix, Alpine(на нем чаще всего докер image делают)

Соглашусь с вашим высказыванием с силу его глючности, она есть но незначительна - глюки зачастую сейчас есть с просмотром логов и их очисткой у выключенных процессов.

Есть альтернатива Python версии супервизора - его ремейк на Go( https://pkg.go.dev/github.com/couchbase/eventing/supervisor ) но мною он не был изучен пока ещё

Ну и ничто не мешает добавить его поддержку и (возможно) поддержку управления systemd процессами

Ок, Alpine - принимается, серьезный аргумент.

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

Systemd чаще используется для упровления системными службами(более низкоуровневый), а Supervisord докеризированными частями одного приложения - больше подходит в тех случаях когда приложение обновляется средствами непрерывной интеграции(CI)

НЛО прилетело и опубликовало эту надпись здесь

простите, но вот этого не понял, чем оно больше подходит то?

Проще конфиг написать, ну и systemd очень тяжел в текущей его форме для простых docker имаджей

Есть люди которые предпочитают использовать замену для systemd(и носят шапочки с фольгой, но всё же они есть) в своих дистрибутивах

Я к примеру использую Gentoo с OpenRC под капотом, без всяких systemd

Gentoo в продакшене? У вас там точно больше одного человека работает? Или это для пет-проектов?

Данный аргумен был в качестве примера систем без systemd.

НЛО прилетело и опубликовало эту надпись здесь

Ни разу не ставил Supervisord вне докер контейнера, поэтому аргументы против systemd у меня слабые

НЛО прилетело и опубликовало эту надпись здесь

А как у systemd с запуском N кол-ва процессов? Нагуглил какие-то костыли. Нет такого, что файлик скопировал в контейнер и кайфуешь. Без ручного старта systemd никак, если речь о нескольких экземплярах процесса. Это самое красивое решение из того, что я нашел:

[Service]

ExecStart=/bin/sleep 600 %I

[Install]

WantedBy=multi-user.target


# systemctl start test@{1..30}.service

Сам мечтаю избавиться от supervisor, заодно образ похудеет без питона.

есть какие-то весомые доводы использовать supervisord вместо нативных systemd сервисов которые решают те же задачи

Ну городить systemd обвязку для какого нить условного скрипта на nodejs/python/php с контролем его работы это лютый оверхед как по мне.

НЛО прилетело и опубликовало эту надпись здесь

А systemd умеет перенаправлять stdout/stderr в соответствующие логи? Напомню - условный скрипт не умеет ничего списать в логи сам, ему и не надо.
Понятно, что в systemd в данный момент много перекрывающего с supervisord, но он и вышел когда никакого systemd не было

Отлично. Не особо разбирался в таких фичах, ибо исторически какие-то вещи работали и работают в супервайзоре когда systemd даже в планах не было

НЛО прилетело и опубликовало эту надпись здесь
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации