gpt4 book ai didi

linux - 如何从 bash 脚本启动需要单独终端的 2 个程序?

转载 作者:太空宇宙 更新时间:2023-11-04 09:23:24 24 4
gpt4 key购买 nike

我有 2 个要运行的程序,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 Neumann 给出的建议,将脚本更改为以下成功启动两个程序:

#!/bin/bash
python programA.py &
sleep 5
python programB.py &

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

最佳答案

更新的答案

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

#!/bin/bash
xterm -e "python ProgramA.py" &
sleep 5
python ProgramB.py

原始答案

如果 programA 正在创建一个用户界面,你可能需要它在前台,所以在后台启动 programB:

{ sleep 5; python programB.py; } &
python ProgramA.py

关于linux - 如何从 bash 脚本启动需要单独终端的 2 个程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39452132/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com