![Samba 守护进程不作为 systemd 服务运行,而是在前台运行](https://linux22.com/image/692230/Samba%20%E5%AE%88%E6%8A%A4%E8%BF%9B%E7%A8%8B%E4%B8%8D%E4%BD%9C%E4%B8%BA%20systemd%20%E6%9C%8D%E5%8A%A1%E8%BF%90%E8%A1%8C%EF%BC%8C%E8%80%8C%E6%98%AF%E5%9C%A8%E5%89%8D%E5%8F%B0%E8%BF%90%E8%A1%8C.png)
我正在运行全新安装的 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 中激活这些选项,但没有帮助:
接口 = enp2s0 仅绑定接口 = true
如果我使用 在前台启动 Samba /usr/sbin/smbd -F
,它就可以工作。然后我就可以从另一台机器连接到服务器并交换文件。
我不知道可能存在错误或者如何才能查明问题所在。
此致,
迈克尔
答案1
遇到了同样的问题,在我的例子中,问题是 smbd 的另一个问题正在 docker 容器中运行,该容器被 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
这样,如果它的 pid 文件不存在,它就会启动 smbd。