gpt4 book ai didi

python - unix crontab 不能很好地处理 python 的 subprocess.popen

转载 作者:太空狗 更新时间:2023-10-30 01:35:09 27 4
gpt4 key购买 nike

我正在使用 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..

有什么想法吗?

最佳答案

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

关于python - unix crontab 不能很好地处理 python 的 subprocess.popen,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8791387/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com