[英]Shell script for running multiple processes
我有一个关于shell脚本的问题(环境是Linux,最好是Ubuntu)。
我们想在RESTFul应用程序上执行压力测试。 压力测试由两个过程组成。 运行它们可能是这样的:
java -jar stress.jar
java -jar stress.jar -someparameter 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
但如果进程打印到stdout,它可能会混乱。
有你的答案。 而不是将某些内容打印到stdout,您可以运行短命命令。
这是另一种应该工作的方式
#!/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回收竞争条件,如果第二个命令存在很长时间,这可能是严重的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.