从一个程序运行多个程序

时间:2014-03-25 08:49:25

标签: python linux ubuntu include makefile

我有12个程序,我打算同时运行。有没有什么方法可以通过一个程序运行所有这些程序,这些程序在构建时运行12个程序?

我使用的是sublime,程序是python。

1 个答案:

答案 0 :(得分:2)

如果您只想逐批执行程序,可以在bash脚本中执行。假设它们是同一文件夹中的可执行文件,您可以拥有包含以下内容的.sh文件:

#!/bin/bash
python ./my_app1.py &
python ./my_app2.py &
python ./my_app3.py

如果脚本本身顶部有#!/usr/bin/env python标识解释器,您可以对其进行chmod +x,并将runner.sh文件转换为:

#!/bin/bash
./my_app1.py &
./my_app2.py &
./my_app3.py

另一方面,如果你想从python脚本中执行此操作,可以使用:

import subprocess
import os

scripts_to_run = ['my_app1.py', 'my_app2.py', 'my_app3.py']

for s in scripts_to_run:
    subprocess.Popen([os.path.join(os.getcwd(), s)])

注1 :不要忘记在第一行的每个脚本中加入#!/usr/bin/env python
注意2 :使用subprocess.Popen()而不是subprocess.call()非常重要,因为后者是一个阻止函数,它会在继续之前等待应用程序完成。使用subproces.Popen()可以获得并发执行。