Что заставило “smbd” прекратить работать на начальной загрузке?

Недавно я столкнулся со странной проблемой на своем сервере самбы (Ubuntu 10.04 LTS am64), когда все доли были "внезапно" недоступны клиентам. Разыскивание ошибки показало это smbd не был запущен на начальной загрузке. Из системного журнала:

[...]
Dec  4 12:28:45 takkat-home dhclient: 
Dec  4 12:28:45 takkat-home NetworkManager: <info>  DHCP: device eth0 state changed (null) -> preinit
Dec  4 12:28:45 takkat-home init: smbd main process (1027) terminated with status 255
Dec  4 12:28:45 takkat-home init: smbd main process ended, respawning
Dec  4 12:28:45 takkat-home dhclient: Listening on LPF/eth0/00:24:1d:25:40:e4
Dec  4 12:28:45 takkat-home dhclient: Sending on   LPF/eth0/00:24:1d:25:40:e4
Dec  4 12:28:45 takkat-home dhclient: Sending on   Socket/fallback
Dec  4 12:28:45 takkat-home avahi-daemon[917]: No service file found in /etc/avahi/services.
Dec  4 12:28:45 takkat-home init: smbd main process (1045) terminated with status 255
Dec  4 12:28:45 takkat-home init: smbd main process ended, respawning
Dec  4 12:28:45 takkat-home init: smbd main process (1050) terminated with status 255
Dec  4 12:28:45 takkat-home init: smbd main process ended, respawning
[...]

и smbd.log:

[...]
[2010/12/04 12:28:45,  0] smbd/server.c:1069(main)
  smbd version 3.4.7 started.
  Copyright Andrew Tridgell and the Samba Team 1992-2009
[2010/12/04 12:28:45,  0] printing/print_cups.c:103(cups_connect)
  Unable to connect to CUPS server localhost:631 - Connection refused
[2010/12/04 12:28:45,  0] printing/print_cups.c:103(cups_connect)
  Unable to connect to CUPS server localhost:631 - Connection refused
[2010/12/04 12:28:45,  0] smbd/server.c:1115(main)
  standard input is not a socket, assuming -D option
[2010/12/04 12:28:45,  0] passdb/pdb_interface.c:253(guest_user_info)
  guest_user_info: Unable to locate guest account [guest]!
[2010/12/04 12:28:45,  0] smbd/server.c:1201(main)
  ERROR: failed to setup guest info.
[2010/12/04 12:28:45,  0] smbd/server.c:1069(main)
  smbd version 3.4.7 started.
  Copyright Andrew Tridgell and the Samba Team 1992-2009
[...]

это было ясно это разрушенный smbd.

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

sudo smbd restart

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

Однако, у меня нет подсказки, какой процесс был ответственен за это поведение, и я волнуюсь о том, как избежать этого в будущем. Любые идеи того, какой процесс мог быть сделан ответственным за катастрофический отказ smbd, будут очень цениться. Также мне было бы интересно слышать то, что, возможно, возможно восстановил перезапуск smbd и если это было хорошей идеей сделать вообще.

3
задан 10 December 2010 в 21:07

6 ответов

Если действительно это - проблема синхронизации, это, вероятно, означает что-то (я предполагаю сетевую службу), который требуется пред запуск smbd, не происходит вовремя. Факт можно запустить его без проблем после запуска, означает, что можно, вероятно, просто установить его в действительно низком приоритете запуска (т.е. прямо в конце, поскольку это, кажется, не зависимость никакого другого сервиса).

Вы делаете это при помощи сценария обновления-rc.d.

Некоторое время фона, контроль/etc/rc2.d (или любой из/etc/rc2.d через/etc/rc5.d), которые являются сервисами, которые установлены автоматически запуститься, когда система вводит уровень выполнения 2 - 5 (для этого осуществления позволяют нам принять theyre то же). Вы, вероятно, заметите, что существует S20smbd, что означает автоматический запуск smbd (связывается для запущения сценария/etc/init.d/smbd) с приоритетом 20, где вещи с низким приоритетом запускаются сначала, пока все в каталоге уровня выполнения не было обработано.

Обычно запуск уровня пользователя использовал бы низкий приоритет (запускается в последний раз) 99, таким образом, из документов обновления-rc.d, мы будем использовать 98:

  • обновите-rc.d smbd значения по умолчанию 98 02

Это просто означает, обновляют автоматический запуск для smbd для уровней выполнения (2-5) по умолчанию к приоритету 98, таким образом, его в значительной степени попытка быть последней вещью, которая запускается (иждивенец о том, как Ваша система настраивается).

1
ответ дан 1 December 2019 в 13:21

У меня был беглый взгляд вокруг сети, и она похожа или на проблему полномочий или на синхронизацию. Например, я выполняю docky, и обычно он открывается с уведомлением после входа в систему, говоря, что compiz не включен и часть привычки функций, которая будет включена однако к тому времени, когда на самом деле кажется, что compiz имел время для запуска, и docky прекрасен. Docky имеет способность отступить к более канонической форме, если compiz еще не запустился. Однако ОСТЬ (avant навигатор окна) не делает этого и просто не загрузится, если compiz не присутствует, даже если этому удается получить его ленивый торец в механизме в более позднюю "дату". Хотя все мои быстрые движения о визуальных gui элементах, теория должна относиться к служебным программам также. Одно возможное решение является сценарием для проверки на успешное выполнение smbd сервиса и если не рабочая попытка запустить его снова.

Надежда это помогает или по крайней мере дает Вам общее представление.

1
ответ дан 1 December 2019 в 13:21

Существует дальнейшая проблема на Ubuntu 11.04 (аккуратна, amd64). От нелегального выпуска:

Вместо того, чтобы вызывать init сценарии через/etc/init.d, используйте сервис (8) утилита, например, сервис S20smbd запускается

Так как сценарий, который Вы пытаетесь вызвать, был преобразован в Новомодное задание, можно также использовать запуск (8) утилита, например, запуститься, S20smbd запускаются: Неизвестное задание: S20smbd

Так, кажется, что smbd пытается быть запущенным как "S20smbd", таким образом это не распознано "сервисом". Снова, перезапуская smbd, после того как система произошла, фиксирует его.

Я не могу выяснить, где проблема находится в новомодных сценариях. Любая справка ценилась бы, спасибо.

1
ответ дан 1 December 2019 в 13:21

У меня была та же проблема. Я выяснил решение при чтении практического руководства при установке sendmail на моем сервере компании.

Установите пакеты sysv-rc-conf и sysvinit-utils путем ввода следующего в терминале.

sudo apt-get install sysv-rc-conf sysvinit-utils

Затем Вы вводите это для конфигурирования системы (Ubuntu 10.04) для загрузки nmbd на начальной загрузке:

sudo sysv-rc-conf nmbd on
1
ответ дан 1 December 2019 в 13:21

Я думаю, что эта проблема происходит из-за гонки между dhclient, который поднимает сетевой интерфейс асинхронно и другие сервисы, для которых нужен сетевой интерфейс.

У меня был Samba, эпизодически не запускающийся в моей системе Debian в течение долгого времени, и теперь по существу то же произошло с mysqld (необходимый бэкэнду MythTV), который наконец заставил меня рыть глубже в него.

Если DHCPACK прибывает вовремя, и dhclient поднимает интерфейс перед Samba / mysql запуск, все в порядке, иначе сервисам не удается запуститься:

mysqld: 120520 11:38:02 [ERROR] Can't start server: Bind on TCP/IP port: Cannot assign requested address

May 20 12:50:38 piano smbd[1763]:   WARNING: no network interfaces found 

Я зафиксировал его ужасным взломом добавления 15-секундной задержки после запуска администратора сети в его init сценарии и перемещения двух init сценариев после администратора сети в порядке загрузки.

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

Я считал другие решения слишком опасными (например, использование upstart).

1
ответ дан 1 December 2019 в 13:21

Будьте осторожны, если у Вас есть несколько сетевых плат, самба даже не может попытаться запуститься (никакая трассировка smbd в sys.log), потому что это ожидает неправильного сетевого интерфейса, чтобы произойти.

  1. проверить ifconfig найти, какой интерфейс Вы хотите использовать.
  2. Затем регистрация /etc/samba/smb.conf та самба использует корректный интерфейс
  3. Затем регистрация /etc/config/smbd.conf то, что корректный интерфейс ожидают, чтобы произойти перед запускающейся самбой. Например, строка ниже только запустит smbd, если интерфейс eth0 произойдет:

start on (local-filesystems and net-device-up IFACE=eth0 and started udev-finish)

3
ответ дан 1 December 2019 в 13:21

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

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