Как проверить результат выполнения команды systemctl is-active в сценарии на языке Bash?

Как можно интерпретировать результат команды <code>systemctl is-active apache2;</code>, который всегда равен нулю, вне зависимости от статуса службы Apache2?
  • 9 апреля 2024 г. 20:19
Ответы на вопрос 2
Для проверки результата выполнения команды `systemctl is-active` в сценарии на языке Bash можно использовать условные операторы. Например, можно проверить результат выполнения команды с помощью оператора if:

```bash
if systemctl is-active apache2 >/dev/null; then
    echo "Служба Apache2 активна"
else
    echo "Служба Apache2 неактивна"
fi
```

Чтобы интерпретировать результат команды `systemctl is-active apache2`, который всегда равен нулю, можно использовать другие команды для проверки статуса службы. Например, можно использовать команду `systemctl status apache2`:

```bash
status=$(systemctl status apache2 | grep Active | awk '{print $2}')
if [ "$status" = "active" ]; then
    echo "Служба Apache2 активна"
else
    echo "Служба Apache2 неактивна"
fi
```

Таким образом, можно проверить статус службы Apache2 и вывести соответствующее сообщение в зависимости от результатов проверки.
zbook:~$ systemctl is-active apache2;
inactive
zbook:~$ echo $?
3
Похожие вопросы