我正在尝试让我的.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
进程自行终止,并等待清理完成,然后再迭代到下一次循环运行。