LINUX.ORG.RU
ФорумAdmin

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


0

3

Доброго времени суток.

У меня есть один главный демон назовем его router и несколько второстепенных демонов worker1, worker2... Все эти демоны хорошо общаются между собой через ZeroMQ, но есть одна проблема. Когда стартует router, если кто-то из демонов уже запущен, он должен узнать об этом и «зарегистрироваться» в роутере. Как это сделать наиболее правильным, каноничным путем?

PS: есть еще одна подзадача, прямо противоположная. Если кто-то из воркеров упал. Роутер должен узнать об этом, и «разрегистрировать» воркера. Подскажите, пожалуйста, в какую сторону смотреть?

Пусть они «эхают» сервер раз в N минут или при запуске. Ну и таймаут в сервере. Я бы так сделал

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

Сейчас это уже реализовано при запуске. Т.е. если запускается сначала router потом все остальные, все работает как часы. Но вот если надо перезагрузить роутер, приходиться заодно перезагружать все воркеры, что не удобно.

С эхо раз в N минут, тоже не очень хорошо выходит. Перезагрузился роутер и сколько ждать пока все демоны поймут что что-то случилось?

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

bumbaram
() автор топика
Ответ на: комментарий от Deleted

Все демоны в скором времени будут оформлены как полноценные системные с инит скиптами и т.д. Поэтому про системД я уже думал:) А есть примерчик, как такое в нем реализовать? Просто в системде я не в зуб ногой...

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