Назад | Перейти на главную страницу

Демон Samba не работает как служба systemd, но работает на переднем плане

Я запускаю новую установку Ubuntu Server 16.04.1 и у меня проблемы с smbd. service smbd status сообщает мне, что должен быть запущен smbd:

   ● smbd.service - LSB: start Samba SMB/CIFS daemon (smbd)
   Loaded: loaded (/etc/init.d/smbd; bad; vendor preset: enabled)
   Active: active (exited) since Die 2016-10-18 17:35:23 CEST; 2s ago
     Docs: man:systemd-sysv-generator(8)
  Process: 24218 ExecStop=/etc/init.d/smbd stop (code=exited, status=0/SUCCESS)
  Process: 21980 ExecReload=/etc/init.d/smbd reload (code=exited, status=0/SUCCESS)
  Process: 25190 ExecStart=/etc/init.d/smbd start (code=exited, status=0/SUCCESS)

Okt 18 17:35:22 speedy systemd[1]: Starting LSB: start Samba SMB/CIFS daemon (smbd)...
Okt 18 17:35:23 speedy smbd[25190]:  * Starting SMB/CIFS daemon smbd
Okt 18 17:35:23 speedy smbd[25190]:    ...done.
Okt 18 17:35:23 speedy systemd[1]: Started LSB: start Samba SMB/CIFS daemon (smbd).

и это можно проверить ps axf | grep smbd:

25356 pts/2    S+     0:00  |   \_ grep --color=auto smbd
19915 ?        Ss     0:08      \_ /usr/sbin/smbd -D
19919 ?        S      0:00          \_ /usr/sbin/smbd -D

Однако netstat -tpln | grep «smbd» ничего не возвращает, а также nmap показывает «закрыто» на портах 139 и 445.

До сих пор я пробовал активировать эти параметры в /etc/samba/smb.conf, но это не помогает:

interface = enp2s0 bind только интерфейсы = true

Если я запускаю Samba на переднем плане, используя /usr/sbin/smbd -F, оно работает. Затем я могу подключиться к серверу с другого компьютера и обмениваться файлами.

Я понятия не имею, что здесь могло быть не так, или как я мог бы отследить проблему.

С уважением,

Майкл

Получил ту же проблему, в моем случае проблема заключалась в том, что другая проблема smbd работала в контейнере докеров, который был обнаружен start-stop-daemon, поэтому он не запускал службу. В данном случае я изменил эту строку в файле /etc/init.d/smbd:

 if ! start-stop-daemon --start --quiet --oknodo --exec /usr/sbin/smbd -- -D ; then

кому:

 if ! start-stop-daemon --start --quiet --oknodo --pidfile /var/run/samba/smbd.pid --exec /usr/sbin/smbd -- -D ; then

Таким образом, он запускает smbd, если его pid-файл не существует.