Неожиданный результат работы с Nginx

На сервер заведены два портала, которые делятся с помощью Host-name в пространстве Nginx. SSL организован при помощи certbot.

Наводился порядок с сертификатами и после того, как были удалены два сертификата (не связанные с работой порталов и давно истекшие) упал Nginx сервер. Самое интересное, что systemctl status nginx.service выдает

● nginx.service - A high performance web server and a reverse proxy server
     Loaded: loaded (/lib/systemd/system/nginx.service; disabled; vendor preset: enabled)
     Active: failed (Result: exit-code) since Mon 2021-12-13 10:48:55 CET; 35min ago
       Docs: man:nginx(8)

Ошибка:

des. 13 10:48:55 u nginx[248435]: nginx: [emerg] bind() to [::]:80 failed (98: Address already in use)
des. 13 10:48:55 u nginx[248435]: nginx: [emerg] still could not bind()
des. 13 10:48:55 u systemd[1]: nginx.service: Control process exited, code=exited, status=1/FAILURE
des. 13 10:48:55 u systemd[1]: nginx.service: Failed with result 'exit-code'.
des. 13 10:48:55 u systemd[1]: Failed to start A high performance web server and a reverse proxy server.

Неожиданность заколючается в том, что оба портала остаются доступными (сразу оговорю, что данные не кэшированы). То есть извне все работает, как и должно.

Что я проверил:

  1. ps -e, нашел pid для nginx и вот, что там: три процесса и выглядят вот так
● snap.certbot.certbot.***********.scope
     Loaded: loaded (/run/systemd/transient/snap.certbot.certbot.***********.scope; transien>
  Transient: yes
     Active: active (running) since Mon 2021-12-13 09:39:30 CET; 1h 35min ago
  1. Пробовал убить процессы связаные с nginx, но они поднимаются снова ( в systemd/system/nginx.service убрал автоматический reload и перезагрузил через daemon-reload, не помогло)
  2. Пробовал убить процессы на 80 порту, но они поднимаются снова

Кто знает корень проблемы и куда копать, чтобы nginx работал "как надо"? Или может разъяснить, что я делаю не так

UPD

Добавлю проверку конфигурации nginx

~$ sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Проверка по портам показывает, что nginx их использует

~$ sudo lsof -i -P -n | grep LISTEN
nginx     245336        www-data    6u  IPv4 3142018      0t0  TCP *:80 (LISTEN)
nginx     245336        www-data    7u  IPv6 3142019      0t0  TCP *:80 (LISTEN)
nginx     245336        www-data    8u  IPv6 3142020      0t0  TCP *:443 (LISTEN)
nginx     245336        www-data    9u  IPv4 3142021      0t0  TCP *:443 (LISTEN)
nginx     245337        www-data    6u  IPv4 3142018      0t0  TCP *:80 (LISTEN)
nginx     245337        www-data    7u  IPv6 3142019      0t0  TCP *:80 (LISTEN)
nginx     245337        www-data    8u  IPv6 3142020      0t0  TCP *:443 (LISTEN)
nginx     245337        www-data    9u  IPv4 3142021      0t0  TCP *:443 (LISTEN)
nginx     245338        www-data    6u  IPv4 3142018      0t0  TCP *:80 (LISTEN)
nginx     245338        www-data    7u  IPv6 3142019      0t0  TCP *:80 (LISTEN)
nginx     245338        www-data    8u  IPv6 3142020      0t0  TCP *:443 (LISTEN)
nginx     245338        www-data    9u  IPv4 3142021      0t0  TCP *:443 (LISTEN)
~$ sudo ps -ax | grep nginx
 245336 ?        S      0:00 nginx: worker process
 245337 ?        S      0:00 nginx: worker process
 245338 ?        S      0:00 nginx: worker process
 250704 pts/7    S+     0:00 grep --color=auto nginx


Ответы (3 шт):

Автор решения: Aleksey Vaganov

Для проверки конфига поможет команда nginx -t, а для того чтобы перечитать конфиг nginx -s reload

→ Ссылка
Автор решения: stck

Выглядит так, что все дело в сервисе certbot'а. Поищите его в /etc/systemd/system/, скорее всего там найдете определение, попробуйте остановить (дополнительно могут быть крон таймеры, проверьте /etc/cron.d/). Судя по информации в документации, для Nginx используется челлендж http-01 который как раз занимает 80 порт.

→ Ссылка
Автор решения: DiD

Управление процессами nginx осуществляется не только systemd, но и скриптами init.d:

sudo /etc/init.d/nginx start
sudo /etc/init.d/nginx stop
sudo /etc/init.d/nginx restart

Остановить процессы nginx можно

 kill $(ps aux | grep '[n]ginx' | awk '{print $2}')

или проще

 killall nginx

Если в логи что-то записалось, можно их отфильтровать:

  • по заголовку команды процесса:

    journalctl -f _COMM=nginx
    
  • по PID:

    journalctl _PID=1071
    
  • по пользователю:

    journalctl _UID=1001
    

Вывести все PIDы и UIDы присутствующих в логах процессов можно соответсвенно

 journalctl -F _PID
 journalctl -F _UID
→ Ссылка