Получить nginx рабочий статус как bool - PullRequest
0 голосов
/ 12 июля 2020

Я хотел бы иметь nginx -status-bool для моего скрипта, чтобы проверять, работает он (true) или нет (false). Если я использую «sudo service nginx status», я получу всю информацию, но мне нужен способ вернуть только true / false.

  • Ubuntu
  • используется в PHP -скрипт (тем не менее)

1 Ответ

1 голос
/ 12 июля 2020

Команды systemctl следуют семантике LSB для кодов выхода.

В частности, systemctl status nginx завершится с кодом 3, если программа не запущена, и 0 если он запущен.

Запуск программы и получение ее кода выхода должны быть довольно тривиальными, например:

<?php

exec('systemctl status nginx', $out, $exit_code);
if (0 == $exit_code) {
    echo 'NGINX is running';
} elseif (3 == $exit_code) {
    echo 'NGINX is stopped';
}

PS вам не нужно запускать systemctl с sudo. Он должен работать для непривилегированного пользователя.

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