无法使用子进程在后台运行命令

时间:2019-02-07 02:02:44

标签: python-3.x subprocess

我有一个使用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)

但是显示出类似的行为。有人可以帮忙吗?

0 个答案:

没有答案