Уведомления

Группа в Telegram: @pythonsu

#1 Июнь 11, 2008 17:51:32

well
От:
Зарегистрирован: 2006-11-20
Сообщения: 163
Репутация: +  0  -
Профиль   Отправить e-mail  

Реализации демона

Решил все черз нити сделать. А вот как имя основному демону присвоить? А то как-то неинтересно, когда висит в процессах длинючая строка с путем и параметрами.



Офлайн

#2 Июнь 11, 2008 18:41:29

Андрей Светлов
От:
Зарегистрирован: 2007-05-15
Сообщения: 3137
Репутация: +  14  -
Профиль   Адрес электронной почты  

Реализации демона


def launchWithName(name):
if name and name != sys.argv:
exe = os.path.realpath(sys.executable)
print ‘Changing process name to ’ + name, sys.argv
os.execv(exe, [name, sys.argv, ‘–name_changed’]+sys.argv)



Офлайн

#3 Июль 1, 2008 15:49:49

el777
От:
Зарегистрирован: 2008-07-01
Сообщения: 1
Репутация: +  0  -
Профиль   Отправить e-mail  

Реализации демона

В какой системе будет работать демон?
Если Linux, то есть библиотека для переименования питоновских процессов - http://code.google.com/p/procname/
Позволяет переименовывать процессы прямо на ходу.
Я использую ее в своем многопроцессном демоне.
Попробуйе. Будут проблемы - пишите.



Офлайн

#4 Ноя. 20, 2008 10:28:05

tymmym
От:
Зарегистрирован: 2008-09-06
Сообщения: 1
Репутация: +  0  -
Профиль   Отправить e-mail  

Офлайн

#5 Июнь 25, 2009 22:38:21

sypper-pit
От: Ulan-Ude(msk)
Зарегистрирован: 2009-01-30
Сообщения: 1102
Репутация: +  6  -
Профиль   Отправить e-mail  

Реализации демона

не один из способов не помог пришлось использовать(FreeBSD) daemon -p <my_pid_file> -u <my_user> <my_cmd>

Офлайн

#6 Май 30, 2010 20:34:11

chkur
От:
Зарегистрирован: 2010-01-07
Сообщения: 19
Репутация: +  0  -
Профиль   Отправить e-mail  

Реализации демона

well
А как тогда организовать “нормальное рождение” дочерних демонов и завершение их? Буду очень благодарен за пример
shiza
Клади PID детей в массив, и при завершении работы в цикле делай waitpid для всех детей из этого массива.
У меня похожий вопрос, но я сделал другой вариант решения. Есть демон, в нем я через multiprocessing запускаю отдельные процессы (один - непрерывное чтение com-порта, другой, третий - зацикленное периодическое чтение различных файлов) В методе stop демона сделал
os.killpg(os.getpgid(pid), SIGTERM)
где pid - это, соответственно, pid демона. Вроде работает - порожденные демоном процессы завершаются. Такое решение имеет право на жизнь?



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version