Найти - Пользователи
Полная версия: кто-нибудь писал демоны на python под linux?
Начало » Python для новичков » кто-нибудь писал демоны на python под linux?
1
Kixiro
поделитесь опытом создания демонов на python, а то что-то не выходит…. особенно интересует управление демоном с помощью сигналов, например перезагрузка конфигов демоном
Андрей Светлов
Этот форум посвящен программированию, а не гаданию.
Не желаете сначала показать, что у вас уже есть и что не работает?
Насколько помню, никаких особых проблем с демонами не было.
ziro
Регулярно пишу демоны под различные нужды. В питоне есть даже пакет под такое дело - http://pypi.python.org/pypi/python-daemon/ который реализует часто используемые фичи типа закрытие ненужных дескрипторов при переходе в режим демона, double-forking и прочее. С сигналами тоже вроде проблем не имел, стандартный модуль в помощь - http://docs.python.org/library/signal.html#signal.signal

Конкретно по перезагрузке проверьте:
1. У Вас нормально настроен логгинг и там нет каких-либо ошибок, например в обработчике сигналов;
2. У Вас сохраняется правильный PID (то есть взятый **после** double-forking) в известный файл;
3. Сигнал отсылается именно на тот PID, который указан в файле.

Единственно, могут быть сложности, если у вас главный исполняемый код находится в подпроцессах, а основной процесс только мониторит - ну это тоже лечится с помощью очередей и подобного.

Так что опишите подробнее что не получается.

UPD: сам учился писать демоны по кодам Paste-Script - посмотрите, может Вам поможет.
nulltime
А можно поподробнее про взаимодействие с демоном?
Задача такая - есть система теневого копирования. По событию закрытия файла на запись создается снапшот. Порождается тред, которому передается номер снапшота, файл, и пр. параметры, он и делает копирование, потом уничтожает снапшот. В основном процессе идет мониторинг/статистика. Я хочу сделать в итоге консольную утилиту, которая может запускать/останавливать демона, менять ему настройки, показывать статистику и состояние тредов в реальном времени. Мучающий меня вопрос - как взаимодействовать с уже запущенным демоном? Как я понимаю, варианты - /proc демона, Unix сокеты, сеть, пайпы. Из всего этого мне симпатизирует /proc, но я совершенно ничего не нашел про работу с proc своего процесса, другими словами, я не знаю как написать proc кусок в демоне. Может что-нить посоветуете?
Андрей Светлов
И не найдете. /proc создается ядром, демонам и прочим процессам туда ходу нет.
Пайпы тоже не в тему - вам именованые объекты нужны.
Так что не морочте голову, сокеты - ваше всё.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB