Вопрос или проблема
У меня есть сервер 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
вызывает перезагрузку службы, то вы можете:
- Удалить или переименовать этот файл, если он не нужен.
- Модифицировать скрипт, чтобы он не перезагружал smbd при получении нового DHCP-адреса.
Если проблема в networkd, то рекомендуется восстановить стандартное поведение DHCP-клиента, так как ваши текущие настройки могут быть несовместимы с новым окружением Systemd.
Заключение
Поиск и устранение причин частых перезагрузок службы smbd требует системного подхода и анализа конфигураций сети и сервиса Samba. Следуя предложенным шагам, вы сможете выявить источник проблем и стабилизировать работу вашего Samba-сервера. Не забывайте сохранять резервные копии конфигурационных файлов перед внесением изменений.