У меня есть набор приложений Java, которые мне нужно запустить в Linux и AIX. В настоящее время в Windows они используют SQL Server. В Linux и AIX я успешно использовал H2DB во встроенном режиме для одного приложения, но я хочу использовать консольный сервер H2DB, предоставляемый H2DB. Для этой цели предусмотрен сценарий оболочки h2.sh. Он содержит следующий скрипт:
#!/bin/sh
dir=$(dirname "$0")
java -cp "$dir/h2-1.4.199.jar:$H2DRIVERS:$CLASSPATH" org.h2.tools.Console "$@"
Как я могу убедиться, что если по какой-либо причине произойдет сбой H2DB, процесс будет перезапущен? Я использую следующий скрипт, чтобы убедиться, что мое приложение перезапускается в случае сбоя:
(
until java -Xms256m -Xmx1024m -XX:+ExitOnOutOfMemoryError -jar Test.jar; do
echo "Test Service crashed with exit code $?. Respawning... " >&2
sleep 5
done
)
Будет ли работать следующий скрипт?
#!/bin/sh
dir=$(dirname "$0")
(
until java -cp "$dir/h2-1.4.199.jar:$H2DRIVERS:$CLASSPATH" org.h2.tools.Console "$@"; do
echo "H2DB Server crashed with exit code $?. Respawning... " >&2
sleep 5
done
)
Мне не удалось аварийно завершить работу службыузнать еще.