用于运行多个进程的Shell脚本

我有一个关于shell脚本的问题(环境是Linux,最好是Ubuntu)。

我们要对RESTFul应用程序执行压力testing。 压力testing由两个过程组成。 运行它们可能是这样的:

java -jar stress.jar

java -jar stress.jar – 某些参数somevalue

这两个必须同时启动。

第一个过程应该开始,运行和返回。 第二个也是 根据定义,第二个将返回更早,我们希望它被重复执行,直到第一个返回。

如果有人能够为我提供脚本(或者我可以使用的基础知识),我将非常感谢。

编辑

这个诀窍:

#!/bin/bash commandA & apid=$!; sleep 10; while kill -0 $apid; do commandB; done 

使用&运算符在后台启动第一个进程:

 java -jar stress.jar & 

所以第二个进程可以在第一次运行时在前台多次启动:

 java -jar stress.jar -someparameter somevalue java -jar stress.jar -someparameter2 somevalue2 

但如果进程打印到标准输出,它可以被搞乱。

shell – 获取后台进程的退出代码

有你的答案。 而不是打印一些标准输出,你可以运行你的短命令。

这是应该工作的另一种方式

 #!/usr/bin/expect spawn java -jar stress.jar -someparameter somevalue expect -timeout 0 timeout { system java -jar stress.jar -someparameter2 somevalue2 exp_continue } 

我相信这比稍微优于OP的while循环,因为它受到pid回收竞争条件的困扰,如果第二条命令长时间存在,这可能是严重的。