Как узнать, почему systemd перезагружает юнит?

Вопрос или проблема

У меня есть сервер Samba, который постоянно перезагружается каждые ~2 минуты по какой-то причине:

$ sudo systemctl status smbd
● smbd.service - Демон Samba SMB
   Loaded: загружен (/lib/systemd/system/smbd.service; включен; предустановка от производителя: включена)
   Active: активен (работает) с понедельника, 2021-05-03 11:30:26 EDT; 19 часов назад
     Docs: man:smbd(8)
           man:samba(7)
           man:smb.conf(5)
  Process: 14071 ExecReload=/bin/kill -HUP $MAINPID (код=завершен, статус=0/УСПЕХ)
 Main PID: 927 (smbd)
   Status: "smbd: готов к обслуживанию подключений..."
    Tasks: 5 (лимит: 4346)
   Memory: 17.6M
   CGroup: /system.slice/smbd.service
           ├─ 927 /usr/sbin/smbd --foreground --no-process-group
           ├─ 940 /usr/sbin/smbd --foreground --no-process-group
           ├─ 942 /usr/sbin/smbd --foreground --no-process-group
           ├─ 967 /usr/sbin/smbd --foreground --no-process-group
           └─1535 /usr/sbin/smbd --foreground --no-process-group

May 04 06:32:38 router systemd[1]: Перезагрузка демона Samba SMB.
May 04 06:32:38 router systemd[1]: Перезагружен демон Samba SMB.
May 04 06:34:36 router systemd[1]: Перезагрузка демона Samba SMB.
May 04 06:34:36 router systemd[1]: Перезагружен демон Samba SMB.
May 04 06:37:07 router systemd[1]: Перезагрузка демона Samba SMB.
May 04 06:37:07 router systemd[1]: Перезагружен демон Samba SMB.
May 04 06:39:19 router systemd[1]: Перезагрузка демона Samba SMB.
May 04 06:39:19 router systemd[1]: Перезагружен демон Samba SMB.
May 04 06:41:39 router systemd[1]: Перезагрузка демона Samba SMB.
May 04 06:41:39 router systemd[1]: Перезагружен демон Samba SMB.

Где мне стоит посмотреть, чтобы понять, почему systemd перезагружает этот юнит?

Я столкнулся с этим после обновления системы Ubuntu с 18.04 до 20.04

Я заметил в полном журнале systemd, что smbd перезагружался после каждого обновления аренды dhcp (в моем случае примерно раз в час)

Aug 20 08:38:54 fileserver dhclient[282]: DHCPREQUEST for 10.12.24.115 on eth0 to 10.12.24.1 port 67 (xid=0x5d719a99)
Aug 20 08:38:54 fileserver dhclient[282]: DHCPACK of 10.12.24.115 from 10.12.24.1 (xid=0x999a715d)
Aug 20 08:38:54 fileserver systemd[1]: Перезагрузка демона Samba SMB.
Aug 20 08:38:54 fileserver systemd[1]: Перезагружен демон Samba SMB.
https://superuser.com/questions/1289485/samba-reload-on-new-dhcp-lease и /etc/dhcp/dhclient-enter-hooks.d/samba, который перезагружает службу.

Я проверил свои резервные копии, и этот файл существовал ранее для 18.04.

Следовательно, “проблема” вероятно заключается в systemd-networkd, который является сетевым демоном в 20.04.

Мое собственное расследование продолжается, но надеюсь, это поможет…

Вы запускали testparm, и если да, то каков дамп конфигурации?

Ответ или решение

Для выявления причин, по которым systemd перезагружает единицу smbd.service каждые две минуты, необходимо проанализировать несколько факторов и настроек системы. Ниже приведены шаги для детального анализа и устранения данной проблемы.

Шаг 1: Исследование системных журналов

Первым шагом будет исследование системных журналов с помощью команды journalctl. Это позволит вам отследить все события, связанные с перезагрузкой службы Samba, включая время и причины перезагрузки.

journalctl -u smbd.service --since="2 hours ago"

Обратите внимание на любые сообщения, которые предшествовали перезагрузке службы. Это может помочь в определении источника проблемы.

Шаг 2: Анализ конфигураций DHCP

Из описания проблемы ясно, что перезагрузка smbd совпадает с обновлением DHCP-аренды. Это может быть связано с наличием пользовательских скриптов в /etc/dhcp/dhclient-enter-hooks.d/. Проверьте, содержит ли этот каталог файл (например, samba), который вызывает перезагрузку службы. Запустите следующую команду для проверки:

cat /etc/dhcp/dhclient-enter-hooks.d/samba

Если в данном файле присутствует команда systemctl reload smbd, то это и будет непосредственной причиной частых перезагрузок службы.

Шаг 3: Проверка настроек systemd-networkd

Поскольку вы обновили систему с Ubuntu 18.04 до 20.04, стоит обратить внимание на изменения, связанные с networkd. Проверьте настройки systemd-networkd, так как изменения в конфигурации сетевых интерфейсов могут влиять на поведение DHCP-клиента:

cat /etc/systemd/network/*.network

Убедитесь, что нет дополнительных конфигураций, которые могут вызывать неограниченное взаимодействие с DHCP.

Шаг 4: Проверка конфигурации Samba

Помимо сетевых настроек, следует проверить конфигурацию Samba. Убедитесь, что в вашем smb.conf (обычно находится в /etc/samba/smb.conf) нет странных настроек, которые могут вызывать перезагрузки. Для этого выполните:

testparm

Эта команда проведёт проверку конфигурационного файла на наличие синтаксических ошибок. Также ознакомьтесь с выводом команды для возможных предупреждений.

Шаг 5: Устранение проблемы

Если вы обнаружили, что файл samba в dhclient-enter-hooks.d вызывает перезагрузку службы, то вы можете:

  1. Удалить или переименовать этот файл, если он не нужен.
  2. Модифицировать скрипт, чтобы он не перезагружал smbd при получении нового DHCP-адреса.

Если проблема в networkd, то рекомендуется восстановить стандартное поведение DHCP-клиента, так как ваши текущие настройки могут быть несовместимы с новым окружением Systemd.

Заключение

Поиск и устранение причин частых перезагрузок службы smbd требует системного подхода и анализа конфигураций сети и сервиса Samba. Следуя предложенным шагам, вы сможете выявить источник проблем и стабилизировать работу вашего Samba-сервера. Не забывайте сохранять резервные копии конфигурационных файлов перед внесением изменений.

Оцените материал
Добавить комментарий

Капча загружается...