Python守护进程子进程在启动时无法工作
我正在尝试写一个Python守护进程,让它在开机时自动启动。这个脚本的目的是从我们的负载均衡服务器接收一个任务,然后完成这个任务。我使用的是pypi上的python-daemon模块(http://pypi.python.org/pypi/python-daemon/)。这个任务的内容是将orf格式(奥林巴斯的原始图像格式)的图片转换成jpeg格式。为了完成这个任务,我使用了一个外部程序,这里是ufraw。问题出现在我开机启动守护进程时,如果我从命令行启动,它运行得很好,能完成工作。但是当它在开机时启动时,就无法启动子进程命令。
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()
我不太确定自己哪里做错了。谢谢大家的帮助。
1 个回答
0
这个问题其实跟Python没关系,而是和Ubuntu系统里的init.d守护进程有关。我原以为这个Python脚本是以用户身份运行的,结果发现并不是。为了修复这个问题,我在init.d脚本里加了一个sudo命令,现在子进程可以成功启动了。