顺序调用多个子流程
Calling multiple sub-processes sequentially
我需要能够每隔几毫秒调用一个 bash 命令,我正在尝试使用子进程来执行此操作。我目前使用:
p = subprocess.Popen(command, universal_newlines=True, cwd=CurrentWorkingDirectory ,shell=True, stdout=subprocess.PIPE)
并有一个计时器在需要的时候触发命令。
我的问题是,如果我通过使用 subprocess.Popen
调用这些命令,是否会打开新的终端来运行每个命令?我想确保我不会遇到任何内存使用问题,因为我将调用数千个这样的命令。
解决此问题的最佳方法是什么?
要回答有关终端打开的问题,除非底层 bash 脚本明确启动终端选项卡或其他内容,否则不会发生这种情况。至于你关于内存使用的问题,这将完全取决于你调用的底层脚本以及你是以顺序还是并发的方式进行的。我想稍微澄清一下可能会有所帮助!
无论您做什么,无论您 运行 是否内存不足,都可能有比在一分钟内启动一千个进程更好的选择。
为了运行顺序子处理,使用subprocess.check_call
代替subprocess.Popen
。
will this be opening new terminals to run each command?
不,除非命令本身启动一个新终端。
我需要能够每隔几毫秒调用一个 bash 命令,我正在尝试使用子进程来执行此操作。我目前使用:
p = subprocess.Popen(command, universal_newlines=True, cwd=CurrentWorkingDirectory ,shell=True, stdout=subprocess.PIPE)
并有一个计时器在需要的时候触发命令。
我的问题是,如果我通过使用 subprocess.Popen
调用这些命令,是否会打开新的终端来运行每个命令?我想确保我不会遇到任何内存使用问题,因为我将调用数千个这样的命令。
解决此问题的最佳方法是什么?
要回答有关终端打开的问题,除非底层 bash 脚本明确启动终端选项卡或其他内容,否则不会发生这种情况。至于你关于内存使用的问题,这将完全取决于你调用的底层脚本以及你是以顺序还是并发的方式进行的。我想稍微澄清一下可能会有所帮助!
无论您做什么,无论您 运行 是否内存不足,都可能有比在一分钟内启动一千个进程更好的选择。
为了运行顺序子处理,使用subprocess.check_call
代替subprocess.Popen
。
will this be opening new terminals to run each command?
不,除非命令本身启动一个新终端。