从一个程序运行多个程序
我有12个程序想要同时运行。有没有办法通过一个程序来启动这12个程序,也就是说我只需要运行这个程序,就能同时运行这12个程序?
我在用Sublime这个编辑器,程序是用Python写的。
1 个回答
3
如果你只是想把程序一个接一个地执行,可以用一个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()
是很重要的,因为后者是一个阻塞函数,会等应用程序执行完再继续。而使用 subprocess.Popen()
可以让多个程序同时执行。