Насколько я могу судить, ядро Linux не отправляет SIGTERM
само по себе пользовательским процессам.(SIGTERM
используется внутренне с потоками ядра :, так ядро запрашивает остановку потока ядра.)
Ядро посылает SIGKILL
пользовательским процессам по собственному желанию, в ряде случаев. Например, OOM killer убивает свою цель с помощью SIGKILL
; некоторые операторы ядра приводят к SIGKILL
; различные сбои памяти могут привести к SIGKILL
с.
Когда операционная система выключается, процессы останавливаются с помощью SIGTERM
и SIGKILL
, но эти сигналы не поступают из ядра (или не напрямую — вызовkill()
с pid 0 или отрицательным pid приведет к тому, что ядро отправит сигнал нескольким процессам ). Они исходят от диспетчера служб, завершающего свои службы, и от различных последних -рвов -уничтожения -всех программ режима приложений -, которые являются частью механизма управления системой :, например. скриптkillprocs
ван Смуренбург rc
, скриптkillprocs
OpenRC и программаsystemd-shutdown
.
Когда ядро выключается или перезагружается, оно не заботится о процессах и не уничтожает их (подробности см. в reboot()
; игнорируйте вариант LINUX_REBOOT_CMD_RESTART2
системного вызова, вы не можете использовать аргумент команды для обработки процессов ).
По умолчанию systemd-resolved
обеспечивает «проверку заглушки DNS/DNSSEC-резольвера» на «IP-адресе 127.0.0.53», порт 53. Вы можете проверить это:
$ sudo netstat -tulpn | grep LISTEN
tcp 0 0 0.0.0.0:5355 0.0.0.0:* LISTEN 787/systemd-resolve
tcp 0 0 127.0.0.53:53 0.0.0.0:* LISTEN 787/systemd-resolve
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 923/sshd: /usr/sbin
tcp6 0 0 :::5355 :::* LISTEN 787/systemd-resolve
tcp6 0 0 :::22 :::* LISTEN 923/sshd: /usr/sbin
Поскольку порт 53 используется по умолчанию для DNS-трафика, как вы указали, именно здесь существует ваш конфликт.
systemd-resolved
можно настроить для работы несколькими различными способами, а резолвер-заглушку можно даже полностью отключить. Вот один из способов сделать это:
sudo systemctl edit systemd-resolved.service
Откроется текстовый редактор, в котором вы можете переопределить конфигурацию по умолчанию systemd-resolved
таким образом, чтобы вы могли легко вернуться, если это не то, что вам нужно. Введите этот текст, сохраните и выйдите из редактора:
[Resolve]
DNSStubListener=no
IIRC перезагружается и перезапускается systemd-resolved
. А теперь посмотрите, где systemd-resolved
слушает:
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 2494/sshd
tcp 0 0 0.0.0.0:5355 0.0.0.0:* LISTEN 8033/systemd-resolv
tcp6 0 0 :::22 :::* LISTEN 2494/sshd
tcp6 0 0 :::5355 :::* LISTEN 8033/systemd-resolv
Теперь dnsmasq
должен иметь возможность прослушивать порт 53.
Эта команда редактирования systemctl создает файл переопределения в /etc/systemd/resolved.conf.d
, который вы можете просто удалить, если хотите отменить эти изменения.Вам также нужно будет запустить эти команды для перезагрузки и перезапускаsystemd-resolved
:
sudo systemctl daemon-reload
sudo systemctl restart systemd-resolved