Форум сайта python.su
Решил все черз нити сделать. А вот как имя основному демону присвоить? А то как-то неинтересно, когда висит в процессах длинючая строка с путем и параметрами.
Офлайн
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)
Офлайн
В какой системе будет работать демон?
Если Linux, то есть библиотека для переименования питоновских процессов - http://code.google.com/p/procname/
Позволяет переименовывать процессы прямо на ходу.
Я использую ее в своем многопроцессном демоне.
Попробуйе. Будут проблемы - пишите.
Офлайн
Офлайн
не один из способов не помог пришлось использовать(FreeBSD) daemon -p <my_pid_file> -u <my_user> <my_cmd>
Офлайн
well
А как тогда организовать “нормальное рождение” дочерних демонов и завершение их? Буду очень благодарен за пример
shizaУ меня похожий вопрос, но я сделал другой вариант решения. Есть демон, в нем я через multiprocessing запускаю отдельные процессы (один - непрерывное чтение com-порта, другой, третий - зацикленное периодическое чтение различных файлов) В методе stop демона сделал
Клади PID детей в массив, и при завершении работы в цикле делай waitpid для всех детей из этого массива.
os.killpg(os.getpgid(pid), SIGTERM)
Офлайн