我在一个包含其他文件的文件夹中有一个可执行jar文件,有时jar文件崩溃,有什么东西会在崩溃时自动重启文件因为我需要这个jar文件一直运行
答案 0 :(得分:2)
例如,在bash中,您可以将进程包装到下一个脚本respawner.sh
#!/bin/bash
until "$@"; do
echo "Process crashed with exit code $?. Respawning.." >&2
sleep 5
done
然后将其用作./respawner.sh java -jar yourJarfile.jar
如果Jvm崩溃,脚本将等待5秒钟并重新启动它。
答案 1 :(得分:0)
嗯,你应该做的第一件事是调查JVM崩溃的原因(它是Java虚拟机,你的java
程序,而不是崩溃的JAR文件),它是如何崩溃的(例如你正在耗尽内存 - 有时正确调整JVM可能会减少甚至消除崩溃等。在你可以做到的程度上,你应该看看使用看门狗。监视程序是监视另一个程序并在失败时重新启动它的程序。请参阅this SO讨论。