Как заставить скрипт оболочки возвращать 0 даже после завершения

Как заставить скрипт оболочки возвращать 0 даже после завершения

У меня есть запланированный скрипт оболочки, работающий в распределенной среде. Есть некоторые сценарии, в которых процесс может быть завершен другими процессами. Но мне нужно, чтобы процесс возвращал 0 даже после сбоя/завершения. Есть ли способ реализовать это в bash?

решение1

Зависит от сигнала. Bash позволяет вам делать ловушки с помощью команды trap, но если ваш скрипт убивается с помощью SIGKILL(9), он не прерывается и не поддается ловушкам.

решение2

Похоже, что это может быть случай использования некоего сторожевого процесса, похожего на то, как keepalived отслеживает процессы.

В самом простом случае вам может помочь команда pidof.

Связанный контент