【发布时间】:2015-01-05 16:26:50
【问题描述】:
我需要能够每隔几毫秒调用一次 bash 命令,并且我正在尝试使用子进程来执行此操作。我目前使用:
p = subprocess.Popen(command, universal_newlines=True, cwd=CurrentWorkingDirectory ,shell=True, stdout=subprocess.PIPE)
并有一个计时器在需要的时间触发命令。
我的问题是,如果我通过使用subprocess.Popen 调用这些命令,这会打开新终端来运行每个命令吗?我想确保我不会遇到任何内存使用问题,因为我将调用数千个这样的命令。
最好的方法是什么?
【问题讨论】:
-
您是否曾经在执行此操作时真的耗尽了内存?
-
你为什么要开设新的终端?
-
我还不能对此进行测试,但我将从每个命令运行一个驱动程序。我不确定每次后续调用“subprocess.Popen”是否会打开一个新终端,因为它在后台运行......我想知道它们是否会堆积起来,或者有什么最终会适得其反这个。
-
@TWagner:如果您运行一个命令(不是每 60 毫秒一个),是否会打开一个新终端?如果你运行两个顺序命令怎么办?这不能轻易测试吗?
-
是否打开新终端完全取决于
command是什么。如果是xterm,那么,是的,您将打开一个新终端。如果是df,它应该只是附加到您当前的终端...
标签: python bash out-of-memory subprocess popen