核心重启命令
最常用和最直接的重启命令是 systemctl,这是现代 Ubuntu 系统(推荐使用 Ubuntu 16.04 及更高版本)管理服务的标准工具。

使用 systemctl (推荐)
这是目前最主流、最推荐的方法。
sudo systemctl restart smbd
命令解释:
sudo: 以管理员权限执行命令,因为修改服务状态需要 root 权限。systemctl: 系统和服务管理器。restart: 重启指令,它会先停止服务,然后立即启动服务。smbd: Samba 的核心守护进程(daemon)名称,负责处理文件和打印共享。
重要提示: Samba 服务通常由两个守护进程组成:
smbd: 处理 SMB/CIFS 协议,负责文件和打印机共享。nmbd: 处理 NetBIOS 名称服务,负责在网络上提供“计算机名”解析。
一个更完整的重启命令是同时重启这两个服务:

sudo systemctl restart smbd nmbd
或者,你可以使用 Samba 的“服务单元”名称 smb,它会同时管理 smbd 和 nmbd:
# 推荐使用这个,它会同时重启 smbd 和 nmbd sudo systemctl restart smb
其他常用相关命令
除了 restart,systemctl 还提供了其他非常有用的命令。
停止服务
如果你想在重启前手动停止服务:
sudo systemctl stop smb
启动服务
如果服务未运行,可以手动启动它:

sudo systemctl start smb
重新加载服务(无需重启)
当你只修改了 Samba 的配置文件(通常是 /etc/samba/smb.conf),但不想中断当前已建立的连接时,可以使用 reload 命令,它会读取新的配置文件并应用,而不会重启服务。
sudo systemctl reload smb
reload 失败(因为某些配置更改无法在不重启的情况下应用),系统通常会自动回退到 restart。
检查服务状态
为了确认服务是否正在运行,可以查看其状态:
sudo systemctl status smb
如果服务正在运行,输出中会显示 active (running),如果服务已停止,则会显示 inactive (dead)。
旧版系统中的命令 (不推荐)
如果你在使用非常古老的 Ubuntu 版本(如 14.04 或更早),系统使用的是 init.d 而不是 systemd,这时你需要使用 service 命令。
# 重启服务 sudo service samba restart # 停止服务 sudo service samba stop # 启动服务 sudo service samba start
注意: service 命令在新的 Ubuntu 系统中仍然可用,但它最终会调用 systemctl,所以使用 systemctl 是更现代和标准的方式。
完整操作流程示例
假设你刚刚修改了 /etc/samba/smb.conf 文件,并想让新配置生效,完整的操作流程如下:
-
验证配置文件语法 (可选但推荐) 在重启前,先检查配置文件是否有语法错误,可以避免不必要的重启失败。
testparm -s /etc/samba/smb.conf
如果没有任何错误输出,说明语法正确。
-
重新加载配置 首先尝试重新加载,这不会影响正在使用共享的用户。
sudo systemctl reload smb
-
检查状态 确认服务是否仍在正常运行。
sudo systemctl status smb
-
reload失败,则重启服务 如果在第 2 步中reload命令报错,或者你想确保所有设置都从零开始加载,那就使用restart。sudo systemctl restart smb
总结表格
| 命令 | 功能 | 推荐场景 |
|---|---|---|
sudo systemctl restart smb |
重启 Samba 服务 | 修改了配置文件后,希望新设置完全生效。 |
sudo systemctl reload smb |
重新加载 Samba 配置 | 仅修改了配置文件,希望在不中断现有连接的情况下应用新配置。 |
sudo systemctl stop smb |
停止 Samba 服务 | 需要暂时关闭共享服务。 |
sudo systemctl start smb |
启动 Samba 服务 | 服务未运行,需要手动开启。 |
sudo systemctl status smb |
查看 Samba 服务状态 | 检查服务是否正在运行,排查问题。 |
对于绝大多数 Ubuntu 用户,sudo systemctl restart smb 是你需要的核心重启命令。
