【问题标题】:Python Daemon Subprocess not working at bootPython守护程序子进程在启动时不起作用
【发布时间】: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


【解决方案1】:

该问题与 python 无关,而是与 ubuntu init.d 守护进程有关。我假设 python 脚本是作为用户的,但事实并非如此。为了解决这个问题,我在 init.d 脚本中添加了一个 sudo 命令,现在子进程成功启动了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-28
    • 1970-01-01
    • 2012-08-07
    • 1970-01-01
    • 2016-01-14
    相关资源
    最近更新 更多