
У меня есть запланированный скрипт оболочки, работающий в распределенной среде. Есть некоторые сценарии, в которых процесс может быть завершен другими процессами. Но мне нужно, чтобы процесс возвращал 0 даже после сбоя/завершения. Есть ли способ реализовать это в bash?
решение1
Зависит от сигнала. Bash позволяет вам делать ловушки с помощью команды trap
, но если ваш скрипт убивается с помощью SIGKILL
(9), он не прерывается и не поддается ловушкам.
решение2
Похоже, что это может быть случай использования некоего сторожевого процесса, похожего на то, как keepalived отслеживает процессы.
В самом простом случае вам может помочь команда pidof.