我有两个我想运行的程序,programA.py和programB.py。当我手动运行它们时,我必须打开独立的终端并键入以下命令:
terminal1
python programA.py
terminal2
python programB.py然后,这些程序中的每一个都在命令行上输出一些数据。最后,programA.py必须完全启动并等待programB.py才能启动( programA.py需要~2才能启动并准备接受数据)。
如果我在Ubuntu中运行这些程序,我如何编写一个bash脚本来实现这一点?现在,我有以下几点:
#!/bin/bash
python programA.py
python programB.py这会启动programA.py,但是因为programA.py会等待输入,所以programB.py直到关闭programA.py才会启动。如何更改我的脚本以同时运行这两个程序?
编辑:
使用安德烈亚斯·诺依曼( Andreas )在下面给出的建议,将脚本更改为以下内容成功启动了这两个程序:
#!/bin/bash
python programA.py &
sleep 5
python programB.py &然而,当两个程序都启动时,代码就不能正常工作了。基本上,programA.py正在设置一个监听套接字,然后创建一个用户使用的接口。然后,programB.py启动,并运行一个进程,通过套接字与programA.py对话。当运行上述脚本时,programA启动、等待、programB启动,然后programA和B连接形成接口,但是programB没有正确地运行其后台进程。
发布于 2016-09-12 16:17:24
最新答案
如果你发现我原来的答案不起作用,但你仍然想用一个脚本来解决你的问题,你可以这样做:
#!/bin/bash
xterm -e "python ProgramA.py" &
sleep 5
python ProgramB.py原始答案
如果programA正在创建用户界面,您可能需要将其放在前台,因此在后台启动programB:
{ sleep 5; python programB.py; } &
python ProgramA.py 发布于 2016-09-12 14:03:01
#!/bin/bash
python programA.py &
sleep 5 # give enough time to start
python programB.py &https://stackoverflow.com/questions/39452132
复制相似问题