Есть множество проблем, которые нужно заботиться, когда вы становитесь хорошим процессом демона :
- предотвращают дампы ядра (многие демоны выполняются как root, а core дампы могут содержать конфиденциальную информацию).
- корректно ведут себя внутри
chroot
gaol - . UID, GID, рабочий каталог, umask и другие параметры процесса соответственно для использования
- relinquish повышенные привилегии
suid
, sgid
- закрыть все дескрипторы открытых файлов, причем исключения в зависимости от варианта использования
- ведут себя правильно, если они начинаются внутри уже снятого контекст, такой как
init
, inetd
и т. д. - настроить обработчики сигналов для разумного поведения демона, а также с определенными обработчиками, определенными в прецеденте
- , перенаправить стандарт потоки
stdin
, stdout
, stderr
, поскольку процесс демона больше не имеет управляющего терминала - обрабатывает ПИД-файл как кооперативную консультативную блокировку, которая представляет собой целую банку червей в само со многими противоречивыми, но действительными способами t o behave
- позволяют надлежащую очистку, когда процесс завершается
- , фактически становятся процессом демона, не приводя к зомби
Некоторые из них являются стандартными, как описано в канонической литературе Unix ( Advanced Programming in UNIX Environment , покойным У. Ричардом Стивенсом, Addison-Wesley, 1992). Другие, такие как перенаправление потока и PID-обработка файлов , являются обычным поведением, которое ожидали бы большинство демонов, но это менее стандартизировано.
Все они покрываются PEP 3143 «Стандартная библиотека процессов демона». Реализация ссылок python-daemon работает на Python 2.7 или новее, а Python 3.2 или более поздней.
задан Collin Dauphinee 1 March 2019 в 23:50
поделиться