LINUX.ORG.RU

Хорошая практика написания демонов

 ,


0

2

Всем доброго дня.

Подскажите пожалуйста какие-нибудь статьи о том, как правильно реализовать демона. Что надо учитывать? Какие моменты надо обходить стороной и т.п.

Задачу буду решать на python'е. Поэтому, если статья будет связана с python'ом, то это жирный плюс.

★★★

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

Лучше не начинай вообще.

Ты, наверное удивишься, узнав сколько в твоем линуксе написано на питоне.

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

Читай, переписывай на питон. Часто хватает просто форкнуться, разобраться с текущей директорией и стандартным IO.

Запутался в запятых в стартовом посте.

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

В книге "Python в системном администрировании" приводится пример, а также даются отсылки к книгам "Python Cookbook" (David Asher) и "UNIX Network Programming: The Sockets Networking API" (Richard Stevens).

kernelpanic ★★★★★
()

Зачастую хватит flock и минутного кронтаба.

baverman ★★★
()

Читать вот это: http://stackoverflow.com/questions/473620/how-do-you-create-a-daemon-in-python

Важно понять зачем нужен double fork, что такое утечка дескрипторов, ulimits...

Потом можно посмотреть готовые либы типа http://pypi.python.org/pypi/python-daemon/

Кстати, systemd позволяет очень быстро создавать демоны которым можно будет и ресурсы ограничивать и запускать/перезапускать/останавливать. Оно ещё может следить за тем чтобы демон не крашнулся.

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

Оно ещё может следить за тем чтобы демон не крашнулся.

Живительный systemd предотвращает сегфолты. Скандалы, интриги, расследования.

baverman ★★★
()

Не удержался…

Хорошая практика — это не писать демонов на питоне.

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

А лучше переложить всю эту рутину на внешнюю программу типа start-stop-daemon

Это уже зависит. Иногда проще и надежнее не использовать внешних утилит.

//Сам часто пользуюсь внешним демонизатором.

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

А лучше переложить всю эту рутину на внешнюю программу типа start-stop-daemon

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

start-stop-daemon(8)

-b, --background

Typically used with programs that don't detach on their own. <...> WARNING: start-stop-daemon cannot check the exit status if the process fails to execute for any reason. This is a last resort, and is only meant for programs that either make no sense forking on their own, or where it's not feasible to add the code for them to do this themself.

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