通过bash运行多个Java应用程序实例,如何访问shell菜单?

所以我得到了testing新的Java引擎的工作。 创build它的程序员使我成为一个testingjar文件,所以我可以testing一些crashmoments和负载平衡。

我知道这是一个文本的负载,但我希望有人能给我一个很好的答案! 预先感谢阅读!

我想自动化testing过程,所以我创build了一个bash文件。

到目前为止,它所做的是循环几次,在其中启动jar文件:

java -jar /mnt/nas/i/testsail/clusteng.jar 2>> /dev/null & 

之后,它得到刚开始的Java应用程序的processId:

 process_ids[$i]=$! 

所以最终我喜欢那个jar的5个实例,全部和他们相关的processId。

现在我的问题是,程序员在应用程序周围添加了一个小shell,我可以告诉它在什么时候崩溃。 如果我只是从命令行启动引擎,它显示我的shell,我只能键入“失败moment_Of_Faillure”,它会不正常地在那里失败。

现在我想给每个实例另一个失败,我想从bash脚本中随机化。

我的问题是 如何从bash脚本中给每个实例提供命令?

我将在这里发布完整的bash脚本:

 #!/bin/bash # Engine testing script; Starts multiple engine instances and shoots one every 20 seconds clear echo "#####################" echo "# Start $1 processes #" echo "#####################" echo "" # create number of processes for (( i = 1 ; i <= $1; i++ )) do if test $i == 1 then echo "Starting process: $i -> Master Process" else echo "Starting process: $i" fi #$! = last started process java -jar /mnt/nas/i/testsail/clusteng.jar 2>> /dev/null & process_ids[$i]=$! echo "PID $!" echo "" sleep 20 done sleep 20 for (( i = 1 ; i <= $1; i++ )) do echo "Kill PID:${process_ids[$i]}" #ech `FAIL BEFORE_RANK_DISTRIBUTION` > fifo$i kill -9 ${process_ids[$i]} echo "" if test $i != $1 then sleep 20 fi done # run errorcheck . `./checklogs` 

您可以使用命名管道(fifos)将命令发送到后台进程。

对于一些提示和建议,请看这里:

发送命令到后台进程