首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何启动两个需要独立于bash脚本的终端的程序?

如何启动两个需要独立于bash脚本的终端的程序?
EN

Stack Overflow用户
提问于 2016-09-12 14:00:18
回答 2查看 803关注 0票数 0

我有两个我想运行的程序,programA.py和programB.py。当我手动运行它们时,我必须打开独立的终端并键入以下命令:

代码语言:javascript
复制
terminal1
python programA.py

terminal2
python programB.py

然后,这些程序中的每一个都在命令行上输出一些数据。最后,programA.py必须完全启动并等待programB.py才能启动( programA.py需要~2才能启动并准备接受数据)。

如果我在Ubuntu中运行这些程序,我如何编写一个bash脚本来实现这一点?现在,我有以下几点:

代码语言:javascript
复制
#!/bin/bash
python programA.py
python programB.py

这会启动programA.py,但是因为programA.py会等待输入,所以programB.py直到关闭programA.py才会启动。如何更改我的脚本以同时运行这两个程序?

编辑:

使用安德烈亚斯·诺依曼( Andreas )在下面给出的建议,将脚本更改为以下内容成功启动了这两个程序:

代码语言:javascript
复制
#!/bin/bash
python programA.py &
sleep 5
python programB.py &

然而,当两个程序都启动时,代码就不能正常工作了。基本上,programA.py正在设置一个监听套接字,然后创建一个用户使用的接口。然后,programB.py启动,并运行一个进程,通过套接字与programA.py对话。当运行上述脚本时,programA启动、等待、programB启动,然后programA和B连接形成接口,但是programB没有正确地运行其后台进程。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-09-12 16:17:24

最新答案

如果你发现我原来的答案不起作用,但你仍然想用一个脚本来解决你的问题,你可以这样做:

代码语言:javascript
复制
#!/bin/bash
xterm -e "python ProgramA.py" &
sleep 5
python ProgramB.py

原始答案

如果programA正在创建用户界面,您可能需要将其放在前台,因此在后台启动programB

代码语言:javascript
复制
{ sleep 5; python programB.py; } &
python ProgramA.py 
票数 1
EN

Stack Overflow用户

发布于 2016-09-12 14:03:01

代码语言:javascript
复制
#!/bin/bash
python programA.py &
sleep 5 # give enough time to start
python programB.py &
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39452132

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档