我有一个使用subprocess.call
函数运行的管道命令。看起来像这样:
cmd = 'echo password | ./create_apps.sh 4 &'
create_apps.sh
脚本除了执行其他操作外,还使用'&'命令启动了一堆python3应用程序。类似于在bash脚本中循环运行多个这样的命令:
echo password | sudo python3 app.py &
我遇到的问题是subprocess
命令从不返回,即控制流从不切换回主程序。有人可以帮忙吗?我只需要该命令在后台运行,而程序的主要流程仍将照常进行。我尝试使用Popen
使用类似这样的方法(如其他一些答案所建议):
p1 = subprocess.Popen(['echo', 'password'], stdout=subprocess.PIPE, close_fds=True)
p2 = subprocess.Popen(['./create_apps.sh', '4'], stdin=p1.stdout, stdout=subprocess.PIPE, close_fds=True)
但是显示出类似的行为。有人可以帮忙吗?