Протестируйте и перезапустите сервис с помощью bash - PullRequest
0 голосов
/ 15 июня 2019

Цель приведенного ниже сценария - проверить конфигурацию nginx, и в случае успеха он перезапустит службу, как показано на рисунке.

#!/bin/bash
echo "checking nginx config..."
if sudo nginx -t | grep -q 'successful'; then
        echo "restaring nginx..."
        sudo systemctl restart nginx
fi

Когда этот скрипт выполняется, он печатает

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Однако мне интересно, почему оператор внутри оператора if не выполняется, даже если текст результата содержит «успешно»

1 Ответ

1 голос
/ 15 июня 2019

Замените

nginx -t

на

nginx -t 2>&1

, чтобы перевести его stderr в стандартный вывод.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...