0

外壳脚本代码:

#!/bin/bash
cd /Users/lee/Documents/DockerValidation/
docker-compose -f docker-compose.yaml up --force-recreate --scale chrome=3 >>output.txt

从 java 调用 shell 脚本的代码

Process p = Runtime.getRuntime().exec("./docker_start.sh");
p.waitFor();

上面的代码触发了shell脚本,selenium hub就起来了。但是为了使集线器启动,该过程必须继续运行。如果我不给 p.waitFor() 我的脚本会快速执行并且集线器没有启动。

我需要帮助来了解如何让我的集线器保持正常运行,同时在后台运行这个过程。或任何其他替代方案来实现我的目标。

4

2 回答 2

0

我试图让我的硒集线器启动并运行,以便我可以开始执行我的测试用例。我做了以下事情,它对我有用。我给了一个等待时间,似乎这是我的问题。

String cmd="./docker_start.sh";
Process p = Runtime.getRuntime().exec(cmd);
p.waitFor(5,TimeUnit.SECONDS);
于 2019-11-05T19:01:04.823 回答
0

您需要将此添加到 docker-compose 文件中

stdin_open: true 
tty: true

,再试一次。

https://docs.docker.com/compose/reference/run

于 2019-11-05T19:11:51.683 回答