我想创建一个可以启动bash脚本的多个实例的python脚本。
我试过了
df.groupBy("group").agg(max("influence").as("max_influence")
但是它会在bashcmd2处停止并且只有在我按下CTRL + C时才会继续。
答案 0 :(得分:0)
你只是在其中运行一个包含3个命令的bash。
如果命令没有设置变量或相互依赖(否则你将无法并行化它们),也许您可以创建3个subprocess.Popen
实例:
commands = '''
bashcmd1
bashcmd2
bashcmd3
'''
for process in [subprocess.Popen(['/bin/bash', '-c', line], stdout=subprocess.PIPE)
for line in commands.split("\n") if line]: # filter out blank lines
out, err = process.communicate() # or just rc = process.wait()
# print out & err
该命令首先创建Popen
对象的列表解析(列表不是生成器,因此进程立即启动),然后执行communicate
等待完成(但其他进程同时运行)
好处是你可以将这种技术应用于任何包含命令的脚本,而且你不需要使用shell &
功能(更便携,包括Windows,只要你使用{ {1}}前缀代替["cmd","/c"
)