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

Я новичок в системе 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 ... 
  • Блокировка в сценарии оболочки
  • перенаправить вывод tee и grep для нескольких лог-файлов
  • команда не найдена с использованием sudo в скрипте
  • Поиск текстового файла по столбцу
  • Как подождать по программе, запущенной в другой оболочке
  • объединить два файла csv на основе условия
  • Как воспроизвести мультимедийный файл с последовательностью команд controllerа?
  • Использование команды `select` для печати меню в Linux
  • Как управлять назначением аргументов
  • Как ускорить работу скрипта на основе поиска grep?
  • Скопируйте файлы в папку назначения только в том случае, если файлы уже существуют. но исходные файлы имеют другое расширение файла
  • Interesting Posts

    синтаксис grep для поиска строк с одиночными кавычками?

    Можно ли установить заголовок терминала Gnome для «user @ host» для любого хоста, к которому я подключен?

    Не удается запустить xterm над ssh после нескольких успехов

    Почему Fedora создает / root с разрешениями `r-xr-x —`?

    Как запустить бесплатную команду crontab

    Как предотвратить изменение конкретного экземпляра xterm из изменений заголовка?

    Удаление Aufs Whiteout

    Файлы TAR: перемещение файлов из подкаталогов в основной каталог

    Как узнать, где программа застряла в Linux?

    Как вы узнали, что находитесь на последней строке при переходе через файл?

    Могу ли я изменить способ отображения файла?

    Почему я получаю разные результаты с тем же пользователем и командой history?

    Печать выборочных полей после инструкций 1-го столбца

    Как отслеживаются ошибки ядра Linux?

    Сценарий оболочки для работы с файлами в некотором каталоге

    Linux и Unix - лучшая ОС в мире.