【问题标题】:unix crontab doesn't handle python's subprocess.popen wellunix crontab 不能很好地处理 python 的 subprocess.popen
【发布时间】:2012-02-06 03:54:42
【问题描述】:

我正在使用 crontab 启动一个 python 脚本,该脚本假设使用 subprocess.popen() 自行启动多个进程。我使用此命令启动可能需要 30 分钟的过程 - 所以我不想等待结果,而是继续使用我原来的 crontab 运行脚本。问题是 crontab 似乎像 subprocess.call 一样处理 subprocess.popen!

我可以在我的日志文件和进程列表中清楚地看到第一个 popen 成功但它不会在后台继续 - 它一直等到第一个 popen 进程结束...

这可能是因为我将 stderr/steout 重定向到文件吗?我没有看到连接,但也许...

我的代码如下:

# inside process spawning loop
# open and append process to list
mainLogger.debug("about to launch process with popen")
scoopPopenObj = subprocess.Popen(cmdArgsString,   
                  shell=True,stdout=qScoopLogFile,stderr=qScoopLogFile) 
openScoops.append((fileName,time.time(),scoopPopenObj))
# rest of script, here is where i dont get until scoopPopenObj finishes..

有什么想法吗?

【问题讨论】:

    标签: python unix crontab python-2.6


    【解决方案1】:

    我不确定这与问题有关,但是当将stderr 重定向到与stdout 相同的管道时,您应该使用stderr=subprocess.STDOUT,如documentation 中所述。

    【讨论】:

      猜你喜欢
      • 2011-12-24
      • 1970-01-01
      • 2012-04-06
      • 2012-06-01
      • 2017-03-29
      • 2014-08-17
      • 1970-01-01
      • 1970-01-01
      • 2010-11-06
      相关资源
      最近更新 更多