gpt4 book ai didi

java - 通过bash运行Java应用程序的多个实例,如何访问其外壳菜单?

转载 作者:太空狗 更新时间:2023-10-29 12:07:18 26 4
gpt4 key购买 nike

所以我得到了测试新Java引擎的工作。
创建它的程序员为我创建了一个测试jar文件,以便我可以测试一些崩溃和负载平衡。
我知道这里有很多文字,但我希望有人能给我一个很好的答案!提前谢谢你的阅读!
我想自动化测试过程,所以我创建了一个bash文件。
到目前为止,它所做的是循环几次,在循环中启动jar文件:

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

之后,它将获取刚刚启动的Java应用程序的processID:
process_ids[$i]=$!

因此,最终我得到了大约5个jar实例,它们都有相关的processid。
现在我的问题是,程序员在应用程序周围添加了一个小shell,在其中我可以告诉它在什么时候崩溃。如果我从命令行启动引擎,它会告诉我shell和我只需键入“fail 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)向后台进程发送命令。
有关提示和建议,请参见此处:
Send command to a background process

关于java - 通过bash运行Java应用程序的多个实例,如何访问其外壳菜单?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6439479/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com