同时运行多个python脚本而无需创建多个脚本

时间:2018-08-28 07:47:05

标签: python linux bash shell scripting

我希望我能很好地解释这一点。(英语不是我的母语),但是在this问题中,他们要求同时运行多个python脚本。 this is到底是怎么实现的,基本上只是使用bash中的&执行我的多个脚本

我想做的是避免创建多个脚本,而是希望一个脚本可以同时运行所有脚本

其中一个脚本看起来像这样(类似于我所有其他脚本)

while True:
    text = "some shell script"
    os.system(text)

我发现很难使用while循环或任何形式的循环,因为它一个接一个地执行它们,而且速度非常慢。我对python非常陌生,并且不太擅长编程..所以任何帮助都很好

1 个答案:

答案 0 :(得分:1)

您可以使用os.fork()为每个脚本生成一个新的进程。即

text = "some shell script"
pid = os.fork()
if pid == 0
    os.system(text)
    sys.exit()

这将创建一个新进程并在其中执行脚本,然后在完成后退出。尽管在while循环中这样做只会继续创建新进程,直到os停止它为止。

如果您有要执行的程序列表,最好使用for循环遍历它们。例如

programs = ['test1.py', 'test2.py', 'test3.py']
for program in programs:
    pid = os.fork()
    if pid == 0
        os.system(program)
        sys.exit()

我也建议在os.system()上使用subprocess.call()来代替它。它使您可以轻松处理正在执行的程序的输入和输出。