2010-03-19 2 views
0

Я пытаюсь написать демона python, который будет запущен при загрузке. Цель скрипта - получить работу с нашего сервера балансировки нагрузки на редукторе и завершить работу. Я использую модуль python-daemon из pypi (http://pypi.python.org/pypi/python-daemon/). Характер выполняемой работы заключается в преобразовании изображений в orf (формат необработанного изображения olympus) в jpeg. Для этого используется внешняя программа, ufraw в этом случае. Проблема возникает, когда я запускаю демона при загрузке, если я запускаю из оболочки, он отлично работает и завершает работу. Когда он запускается при загрузке, он не может запустить команду subprocess.Подпроцесс Python Daemon не работает при загрузке

commandString = '/usr/bin/ufraw-batch --interpolation=four-color --wb=camera --compression=100 --output="' + outfile + '" --out-type=jpg --overwrite "' + infile + '"' 
args = shlex.split(commandString) 
process = subprocess.Popen(args).wait() 

Я не уверен, что я делаю неправильно. Спасибо за любую помощь.

+0

Я не знаком с ретранслятором, поэтому я не знаю точно, как вы его записывали/печатали, но я думаю, вам нужно собрать больше информации о том, что происходит. Действительно ли вызов подпроцесса вызывает исключение, или он просто получает ненулевой код возврата? – DNS

+0

Извините за недостаток информации, по сути, единственная обратная связь, которую я получаю, что подпроцесс не работает, заключается в том, что преобразование изображения не происходит, а сервер ретранслятора получает отказ от скрипта. По сути, мне интересно, есть ли что-то конкретное, что вам нужно сделать, чтобы запустить подпроцесс от демона python. –

ответ

0

Проблема не связана с python, а связана с демонами ubuntu init.d. Я предполагал, что скрипт python был как пользователь, оказывается, что это не так. Чтобы исправить проблему, я добавил команду sudo в скрипт init.d, и теперь подпроцесс начинается успешно.

Смежные вопросы