Скрипт Bash для непрерывного выполнения двоичного файла, даже если двоичный файл выходит из строя

#linux #bash #script

Вопрос:

У меня есть два двоичных файла, которые мне нужно запустить (например, hello1 и hello2, и порядок должен быть hello1, за которым следует hello2), но время от времени hello2 выходит из строя, и когда он выходит из строя, мне нужно вручную перезапустить hello2. Я хочу, чтобы сценарий Bash продолжал проверять состояние hello1 и hello2, и если один из них выйдет из строя, я хочу запустить hello1 и hello2.

В Linux проверка идентификаторов PID hello1 и hello2лучший способ сделать это?

Ответ №1:

Выполните команды непосредственно в качестве условия until цикла.

 while :; do
   until hello1; do :; done
   until hello2; do :; done
done
 

Если вам нужно выполнить каждую команду только один раз, вы можете опустить заключительный while цикл.

Это команда « : ничего не делать», требуемая синтаксисом цикла. Все, что вам действительно нужно, — это чтобы цикл завершился, как только команда получит статус успешного завершения.