Создайте программу, которую вы хотите, чтобы она постоянно выполнялась как дочерний процесс «наблюдателя», который перезапускает его по завершении. Вы можете использовать wait / waitpid (или SIGCHILD), чтобы сказать, когда ребенок заканчивает. Я ожидал бы, что чей-то написанный код сделает это (это в значительной степени то, что делает init (8))
Однако программа предположительно что-то делает. Возможно, вы захотите не только проверить, запущено ли приложение, но и не зависло ли оно или что-то в этом роде и предоставляет ли сервис, для которого оно предназначено. Это может означать выполнение какой-либо пробной или искусственной транзакции для проверки ее правильности.
РЕДАКТИРОВАТЬ: Возможно, вы сможете получить init, чтобы сделать это за вас - дать ему тип «респауна» в inittab. Со страницы руководства:
respawn
The process will be restarted whenever it terminates (e.g. getty).