nginx: неопознанный сервис после обновления Nginx на Ubuntu 18.04

Я удалил стандартный пакет Nginx со своего сервера и скомпилировал это из источника здесь . На сервере есть сценарий, который проверяет Nginx и сообщает о любых проблемах:

if ($result->num_rows > 0) {
    exec('sudo service nginx configtest 2>&1', $output, $returnCode);
    if ($returnCode === 0) {
        passthru('sudo service nginx restart');
    } else {
        $subject = 'Nginx config test failed on ' .gethostname();
        $message = implode('<br>', $output);
        Mail::sendEmail('it_staff@mydomain.com', $subject, $message);
    }
}

При запуске service nginx configtest я получаю:

nginx: неопознанная служба

Однако при запуске nginx -t возвращает:

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

Могу ли я где-то пропустить конфигурацию, о которой я не знаю? Nginx работает, но сообщает, что это неопознанный сервис .

Я создал файл модуля systemd со следующим:

[Unit]
Description=nginx - high performance web server
Documentation=https://nginx.org/en/docs/
After=network-online.target remote-fs.target nss-lookup.target
Wants=network-online.target

[Service]
Type=forking
PIDFile=/var/run/nginx.pid
ExecStartPre=/usr/sbin/nginx -t -c /etc/nginx/nginx.conf
ExecStart=/usr/sbin/nginx -c /etc/nginx/nginx.conf
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s TERM $MAINPID

[Install]
WantedBy=multi-user.target

Я также включил и запустил Nginx:

sudo systemctl enable nginx.service
sudo systemctl start nginx.service

Nginx запущен, и я могу посещать веб-сайты, используя этот сервер. Что я мог упустить? Спасибо.

0
задан 10 June 2021 в 16:42

1 ответ

Старый вызов службы предназначен для «устаревших» программ, но nginx является модулем SystemD, а не устаревшим SysVInit / Служба выскочки.

служба nginx configtest устарела в пользу прямого sudo nginx -t в настоящее время, и вы всегда должны использовать sudo nginx -t в качестве средства настройки тестирование. Положитесь только на службу / systemctl для остановки, запуска и перезагрузки службы. Больше не полагайтесь на него в параметрах configtest.

1
ответ дан 28 July 2021 в 11:30

Другие вопросы по тегам:

Похожие вопросы: