LINUX.ORG.RU
ФорумAdmin

Samba стала работать только при ручном запуске, но не через systemd

 , ,


1

3

Есть Ubuntu 15.10. Есть настроенная много лет назад Samba. Сегодня перезапустил smbd и теперь она из systemd не работает:

journalctl:

апр. 09 21:40:22 home-server polkitd(authority=local)[1382]: Registered Authentication Agent for unix-process:30235:272102
апр. 09 21:40:22 home-server systemd[1]: Stopping LSB: start Samba SMB/CIFS daemon (smbd)...
апр. 09 21:40:22 home-server smbd[30241]: * Stopping SMB/CIFS daemon smbd
апр. 09 21:40:22 home-server smbd[30241]: start-stop-daemon: warning: failed to kill 29719: No such process
апр. 09 21:40:22 home-server avahi-daemon[1307]: Invalid response packet from host 192.168.1.73.
апр. 09 21:40:23 home-server smbd[30241]: ...done.
апр. 09 21:40:23 home-server systemd[1]: Stopped LSB: start Samba SMB/CIFS daemon (smbd).
апр. 09 21:40:23 home-server polkitd(authority=local)[1382]: Unregistered Authentication Agent for unix-process:30235:2721
апр. 09 21:40:25 home-server polkitd(authority=local)[1382]: Registered Authentication Agent for unix-process:30284:272102
апр. 09 21:40:25 home-server systemd[1]: Starting LSB: start Samba SMB/CIFS daemon (smbd)...
апр. 09 21:40:25 home-server smbd[30290]: * Starting SMB/CIFS daemon smbd
апр. 09 21:40:25 home-server smbd[30290]: ...done.

systemd:

service smbd status
● smbd.service - LSB: start Samba SMB/CIFS daemon (smbd)
   Loaded: loaded (/etc/init.d/smbd)
   Active: active (exited) since Сб. 2016-04-09 21:40:25 MSK; 3min 1s ago
     Docs: man:systemd-sysv-generator(8)
  Process: 30241 ExecStop=/etc/init.d/smbd stop (code=exited, status=0/SUCCESS)
  Process: 30290 ExecStart=/etc/init.d/smbd start (code=exited, status=0/SUCCESS)

апр. 09 21:40:25 home-server systemd[1]: Starting LSB: start Samba SMB/CIFS daemon (smbd)...
апр. 09 21:40:25 home-server smbd[30290]: * Starting SMB/CIFS daemon smbd
апр. 09 21:40:25 home-server smbd[30290]: ...done.
апр. 09 21:40:25 home-server systemd[1]: Started LSB: start Samba SMB/CIFS daemon (smbd).

Статус горит зелёненьким, хотя процесса smbd нет. Логи самой самбы при этом пустые и даже не создаются.

Если же запускать smbd вручную с -F, то всё работает прекрасно.

Куда копать в этом вашем systemd? :-/

★★★★★

ExecStart=/etc/init.d/smbd start (code=exited, status=0/SUCCESS)

Это не systemd-сервис, это костыльная обёртка над инитскриптом. Он выполнился без ошибок, но процесса нет, надо смотреть внутрь

disarmer ★★★
()
Ответ на: комментарий от disarmer

надо смотреть внутрь

Куда? Как я написал, при ручном запуске — всё ок. При запуске штатным сервисом — в логах ничего внятного нет.

KRoN73 ★★★★★
() автор топика
Ответ на: комментарий от KRoN73

Прямо туда, в /etc/init.d/smbd. Там скорее всего портянка на баше. Можешь для проверки запустить вручную:

sudo /etc/init.d/smbd start
Если снова процесс не появится - проблема в инитскрипте

disarmer ★★★
()
Ответ на: комментарий от disarmer

Там скорее всего портянка на баше

Да, но она давно уже обёртка для systemd.

Если снова процесс не появится - проблема в инитскрипте

Он дёргает systemd:

# sudo /etc/init.d/smbd start
[ ok ] Starting smbd (via systemctl): smbd.service.

И, да, точно также как по service start — отчитывается об успешном запуске, но процесса нет, в логах — ничего внятного.

Для сравнения, status — тоже обёртка над systemd:

# sudo /etc/init.d/smbd status
● smbd.service - LSB: start Samba SMB/CIFS daemon (smbd)
   Loaded: loaded (/etc/init.d/smbd)
   Active: active (exited) since Сб. 2016-04-09 22:44:36 MSK; 58s ago
     Docs: man:systemd-sysv-generator(8)
  Process: 16242 ExecStop=/etc/init.d/smbd stop (code=exited, status=0/SUCCESS)
  Process: 16291 ExecStart=/etc/init.d/smbd start (code=exited, status=0/SUCCESS)

апр. 09 22:44:35 home-server systemd[1]: Starting LSB: start Samba SMB/CIFS daemon (smbd)...
апр. 09 22:44:36 home-server smbd[16291]: * Starting SMB/CIFS daemon smbd
апр. 09 22:44:36 home-server smbd[16291]: ...done.
апр. 09 22:44:36 home-server systemd[1]: Started LSB: start Samba SMB/CIFS daemon (smbd).

KRoN73 ★★★★★
() автор топика
Ответ на: комментарий от KRoN73

Лол. То есть у тебя инитскрипт дёргает systemd, а systemd дёргает инитскрипт? Дебиан, десу. Дистропроблемы.

intelfx ★★★★★
()
Ответ на: комментарий от LynxChaus

подними самбе loglevel до 5 и посмотри в её логах, чё пишет.

Я же говорю — при ручном запуске всё работает. При автоматическом — даже логи не создаются. В логах же самого systemd всё нормально. Так что не важно уже, какой там loglevel. Я так понимаю, что проблема не в Самбе, а в сервисах (systemd или нет — х.з., как там сейчас накрутили, но отчитывается обо всём происходящем systemd).

KRoN73 ★★★★★
() автор топика
Ответ на: комментарий от littlechris

в любой непонятной ситуации удаляй systemd

Это сносит половину системы. 2016-й год на дворе.

KRoN73 ★★★★★
() автор топика
Ответ на: комментарий от KRoN73

Добавь в ненужноД smb.service в секцию [service] вот этой магии: Environment=SYSTEMD_LOG_LEVEL=debug и показывай потом выхлоп от jornalctl -x

LynxChaus
()
Ответ на: комментарий от KRoN73

Это сносит половину системы.

С systemd жизни нет. Уходи на теплый ламповый FreeBSD :)

iron ★★★★★
()

Сегодня перезапустил smbd и теперь она из systemd не работает

Это начало системдкапца?

torvn77 ★★★★★
()

У меня была похожая проблема (на этой же убунте), когда демон автоматом не стартовал, а руками systemctl start нормально делалось. Решилось дело удалением service файла то ли из /etc/systemd, то ли ещё откуда-то. Не помню точно уже.

ionanahin ★★★
()
Ответ на: комментарий от KRoN73

Это сносит половину системы. 2016-й год на дворе.

Это образно было сказано.

apt-get install upstart-sysv

и всё.

Deleted
()
Ответ на: комментарий от KRoN73

sudo /etc/init.d/smbd start

service samba restart вообще-то в убунте. Забудь про дёргание initscript'ов напрямую, это deprecated.

Deleted
()
Ответ на: комментарий от Deleted

// Прошу прощения за оффтоп

Забудь про дёргание initscript'ов напрямую, это deprecated.

А почему? Ведь это проще хотя бы тем что оно по табу умеет имя дополнять (хотя вроде и service это умел, сейчас не на чем проверить). Почему управлять демон через дерганье инитскриптов плохо, где об этом можно почитать?

alozovskoy ★★★★★
()
Последнее исправление: alozovskoy (всего исправлений: 1)
Ответ на: комментарий от alozovskoy

Потому, что service автодополняет и дёргает стартовые скрипты не только из init.d, то и из потрохов systemd.

Deleted
()
Ответ на: комментарий от Deleted

service samba restart вообще-то в убунте

Так в топикстарте смотри же:

systemd:
service smbd status

Очевидно, что и smbd restart — штатно (но не samba — оно теперь «Loaded: masked (/dev/null)»).

А init.d start — это по запросу конкретного автора, полагающего, что оно обрабатывается иначе, чем service.

KRoN73 ★★★★★
() автор топика
Ответ на: комментарий от disarmer

Всё правильно написал, это не systemd-unit, а автоматически сгенерированная прослойка systemd-sysv-generator. Можно позапускать этот shell-скрипт прямо через /bin/sh -e, подозреваю, что ему не хватает каких-то переменных окружения. Ну или взять настоящие unit-файлы из любого дистрибутива, который уже перешёл на systemd, и поправить для убунты.

pod ★★
()
Ответ на: комментарий от Deleted

А ещё, что менее очевидно, samba - это не только smbd, но и nmbd ;)

Ага. Вот только теперь в Ubuntu они запускаются по отдельности, а не общим метасервисом. См внимательнее выше :)

KRoN73 ★★★★★
() автор топика
Ответ на: комментарий от Deleted

Неа, service samba start

┌─(balancer@home-server,16:32:53):~
└hbr─> sudo service samba start
Failed to start samba.service: Unit samba.service is masked.

Её в 15.10 выпилили... А, оказывается ещё раньше, в Debian в 2014-м:

The /etc/init.d/samba wrapper script doesn't work well with systemd (see https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=740942).

If you want to start/stop the samba services, you need to start them individually: smbd and nmbd (if you are using the 'old style') or samba-ad-dc (if you are running samba as an active directory domain controller).

KRoN73 ★★★★★
() автор топика
Ответ на: комментарий от Deleted

у меня то systemd выпилен

А я, вот, на некоторых машинах начал заранее привыкать. Типа, все там будем. Чтобы потом шока не было :) Так что на двух машинах уже systemd.

KRoN73 ★★★★★
() автор топика
22 мая 2016 г.

Проблему так и не решил, самба жила всё это время в ручном запуске.

Сегодня обновился до 16.04 — и завелась сразу.

KRoN73 ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.