【发布时间】: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