На вопрос, который вы дали в заголовке:
Этот простой бесконечный цикл перезапустит вашу программу, как только она выйдет из строя:
#!/bin/bash
for ((;;))
do
yourProgram
done
Если ваша программа зависит от ресурса, который может дать сбой, было бы целесообразно вставить короткую паузу, чтобы избежать перехвата всех системных ресурсов при сбое миллион раз в секунду:
#!/bin/bash
for ((;;))
do
yourProgram
sleep 1
done
На вопрос из тела вашего поста:
Как лучше всего проверить, работает ли служба?
Если ваш ps
имеет опцию -C (например, Linux ps), вы бы предпочли эту комбинацию ps ax | grep
.
ps -C yourProgram