Если честно, перезапуск демона без каких-либо вопросов после сбоя, вероятно, не очень хорошая идея; ну, это в значительной степени зависит от типа обработки, выполняемой вашим демоном, но если, например, он обрабатывает файлы из данного каталога или запросы, поступающие от администратора очередей, а файл / сообщение содержит некоторые неожиданные данные, вызывающие сбой, перезапускающий демон немедленно приведет к его аварийному завершению (за исключением случаев, когда файл / сообщение удаляется, независимо от того, правильно он был обработан или нет, но, похоже, это не очень хорошая идея).
Короче говоря, вероятно, лучше отследить возможные причины сбоя и устранить их, когда это возможно (или, по крайней мере, зарегистрировать проблему и продолжить, при условии, что сообщение журнала когда-либо будет отсканировано, чтобы наконец предупредить человека, поэтому некоторые действия могут быть предприняты при таких "неудачах").
В любом случае, если у вас есть очень веские причины для этого, решение, даже более простое, чем «проверка того, что процесс активен» (поскольку оно, вероятно, каким-то образом связано с некоторыми вещами «ps -blahblah»), вы можете просто java-программа запускается в цикле "while true" оболочки следующим образом:
while true
do
# launch the java program here, no background
# when crashing, the shell will be given hand back
java -classpath blahblah...
echo "program crashed, relaunching it..."
done