【发布时间】:2010-03-19 20:18:41
【问题描述】:
我正在尝试编写一个将在启动时启动的 python 守护程序。该脚本的目标是从我们的 gearman 负载平衡服务器接收作业并完成该作业。我正在使用 pypi (http://pypi.python.org/pypi/python-daemon/) 的 python-daemon 模块。它正在完成的工作的性质是将 orf(奥林巴斯原始图像格式)的图像转换为 jpeg。为了实现这一点,使用了一个外部程序,在这种情况下是 ufraw。当我在启动时启动守护程序时,问题就出现了,如果我从 shell 启动它会完美运行并完成工作。当它在引导时启动时,它无法启动 subprocess 命令。
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()
我不确定我做错了什么。感谢您的帮助。
【问题讨论】:
-
我对 gearman 不熟悉,所以我不知道你会如何记录/打印这个,但我认为你需要收集更多关于正在发生的事情的信息。子进程调用实际上是引发异常,还是只是得到一个非零返回码?
-
对不起,缺少信息,基本上我得到的唯一反馈是子进程不起作用是图像转换没有发生,并且 gearman 服务器从脚本接收到故障。本质上,我想知道是否需要执行任何特定操作才能从 python 守护程序运行子进程。
标签: python imagemagick daemon gearman