让我的 ShellScript 在给定的时间内运行 java 文件

让我的 ShellScript 在给定的时间内运行 java 文件

我正在尝试让我的.sh文件运行 Java 程序一段特定的时间。


这是我的.sh文件:

#Runs Java Repeatedly.
#Reset directory
cd
#Go until src
cd Desktop/Lin\ Lab/Java\ Workspace/SandBubbler/src/

for((i = 0; i < 10; i++))
do
    java testerPackage.BubblerSimulation
    #kill process after x amount of seconds.
done

我是 Unix/Linux 的新手(我昨天开始学习)所以请用简单的方式解释一下。谢谢!

答案1

for ((i=0; i<10; i++)); do
    java testerPackage.BubblerSimulation &
    javapid=$!
    sleep 10
    kill -TERM $javapid
    wait $javapid
done

在命令运行后使用&它会在后台运行并继续执行下一个命令。然后,我们捕获最后一个后台命令的 pid(进程 ID),该命令位于 的特殊变量值中$!

sleep是一个只会暂停指定秒数的命令。

然后,我们使用kill带有捕获的 pid 的命令来告诉java进程自行终止,并等待清理完成,然后再迭代到下一次循环运行。

相关内容