Запустите сценарий оболочки и прочитайте вывод в переменной и запустите другой скрипт на основе вывода

Я новичок в системе Linux. Мое требование состоит в том, чтобы запустить сценарий состояния Linux, который отображает сообщение (сообщение либо «приложение запущено», либо «приложение не запущено»).

Если сообщение «Приложение запущено», запустите другой сценарий оболочки, чтобы остановить приложение. Затем запустите несколько секунд сценарий оболочки состояния. Когда я читаю «Приложение не работает», запустите сценарий Deploy для развертывания нового приложения.

Сценарий состояния написан в Bash:

if [ "$(ps -ef | grep -i cat ${TPSHUB_HOME}/current.pid | grep -v grep|awk '{ print $2 }')" ];then echo "TpsHub is RUNNING" else echo "TpsHub is NOT running" fi exit 

2 Solutions collect form web for “Запустите сценарий оболочки и прочитайте вывод в переменной и запустите другой скрипт на основе вывода”

  while true ; do if .... (your condition) echo "TpsHub is RUNNING" . /path/to/stopping/script sleep 5 else echo "TpsHub is NOT running" . /path/to/deploy/script exit 0 fi done 

Будет продолжать работать в цикле до тех пор, пока условие не будет удовлетворено, а затем выйдите после завершения развертывания. Если он не останавливается в течение 5 секунд, остановка сценария повторяется

Вот еще одно решение, которое сокращает ваш метод проверки того, существует ли PID или нет при вызове ps -p с вашим PID:

 while true; do if ps -p "$(<$TPSHUB_HOME/current.pid)" &> /dev/null; then # announce running, kill tpshub and sleep else # announce not running, start tpshub and quit fi done 

Обратите внимание, что вы также можете использовать xargs с ps и перенаправление для использования значения PID, хранящегося в файле:

 if xargs ps -p < "$TPSHUB_HOME/current.pid" &> /dev/null; then ... 
  • Параметры командной строки с аргументом в сценарии оболочки
  • Итерация по нескольким параметрам с пробелами в сценарии bash
  • Ввод файла для оператора select в командной строке
  • vim: создать файл с + x бит
  • Сценарий Bash для вставки информации после каждой строки блока данных
  • Как узнать, содержит ли PWD пробелы или буквы, отличные от английского?
  • Установить команду, если команда не существует
  • Отображать время работы cron в удобном для пользователя формате
  • не выполняет то, что он должен делать?
  • «History» перестает работать при запуске внутри сценария bash
  • прочитайте клавиатуру во время чтения
  • Linux и Unix - лучшая ОС в мире.