LINUX.ORG.RU

Как управлять зоопарком мелких скриптов-демонов?

 ,


2

4

Приветствую.

Есть небольшое количество (скажем десяток) мелких скриптов-демоненков. Периодически некоторые выкидываются за ненадобностью, другие добавляются, и т. д. Скрипты на Python. Сейчас все запускается и мониторится вручную в screen.
Собственно вопрос, как этим удобно управлять? Хотелось бы какой-то application server в духе Tomcat или uwsgi в который можно было бы кидать новый скрипт, а управление и логирование ложилось на плечи этого сервера.
Есть ли Tomcat в Python-мире? Как вы решаете эту задачу?

★★★★★
man systemd.service

Я оформляю как сервисы systemd. Ну и системд уже следит, например если скрипт упадет, он его перезапустит.

Yur4eg ★★
()

systemd (+ instantiated units, как советуют), очевидно.

intelfx ★★★★★
()
Последнее исправление: intelfx (всего исправлений: 1)

до чего техника дошла. раньше были тамагочи, а теперь скрипты-демоны

buratino ★★★★★
()
Ответ на: комментарий от urxvt

Расшифруй что ты имеешь в виду.

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

alpha ★★★★★
()
Ответ на: комментарий от alpha

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

urxvt ★★★★★
() автор топика
Последнее исправление: urxvt (всего исправлений: 1)
Ответ на: комментарий от urxvt

Я к тому, чтобы управлять этим штатно нужно размазываться по системе: положить systemd-unit в нужное место, положить конфиг для логротейта, и т.п. В том же uwsgi правишь один конфиг и все остальное унифицировано

если у тебя instanticated unit - то это и есть унифицированный конфиг, в котором можно редиректить вывод скрипта в какой-то шаблонизированный путь: python scripts/%i > logs/%i.log

другое дело что на самом деле тебе скорее всего нужно не «класть логи в отдельный файл», а «уметь читать логи конкретного сервиса». А класть их в отдельный файл ты хочешь потому что это один из способов как это можно организовать.

Но с systemd всё проще.

journalctl -u custom-script@*

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

alpha ★★★★★
()
Ответ на: комментарий от alpha

Похоже то что нужно! Я про instantiated units не знал.
Спасибо огромное, будем пробовать.

urxvt ★★★★★
() автор топика

[стороннее-мнение]и потом эти люди говорят, что systemd не нужен[/стороннее-мнение]

bvn13 ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.