繁体   English   中英

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

[英]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,它可能会混乱。

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

有你的答案。 而不是将某些内容打印到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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM