返回首页DA系统C#IDE文件同步服务屏保 今天是: 2026-05-05    "立夏"  夏季的第一个节气,表示盛夏时节的正式开始

搜索
热搜: linux 技术
Hi~登录注册
查看: 976|回复: 0

[转载] 【转载】systemctl restart 和 systemctl reload 和 systemctl daemon-reload 对比

[复制链接]
发表于 2025-4-24 20:19:09 | 显示全部楼层 |阅读模式
systemctl restart 和 systemctl reload 和 systemctl daemon-reload 对比
转载作者:kfepiza


以下是 systemctl restart、systemctl reload 和 systemctl daemon-reload 的对比总结:

命令 作用对象 行为 适用场景 对服务的影响
systemctl restart 服务名 具体服务 强制停止服务,再重新启动。 配置或代码有重大变更,或服务出现异常需完全重启。 服务会中断,进程 PID 变化。
systemctl reload 服务名 具体服务 请求服务重新加载配置(不重启)。 仅需更新配置文件(如 Nginx、Apache),需保持服务不中断。 服务不中断,进程 PID 不变(需服务支持 reload 功能)。
systemctl daemon-reload Systemd 管理器本身 重新加载所有单元文件(如 .service、.timer),使配置变更生效。 修改了服务的单元文件(如启动参数、依赖关系),或新增/删除了单元文件。 不会直接影响运行中的服务,需后续手动重启服务以应用变更。


关键区别:
1.操作目标:
restart 和 reload 针对具体服务。
daemon-reload 针对 Systemd 管理器(更新其配置)。

2.对服务的影响:
restart:强制重启服务,中断运行。
reload:热更新配置,不中断服务(需服务支持)。
daemon-reload:仅更新 Systemd 的配置,不直接影响服务(需后续操作)。

典型流程示例:
修改服务配置文件(如 Nginx 的 nginx.conf):

# 仅重新加载配置(不中断服务)
sudo systemctl reload nginx

修改服务的单元文件(如 nginx.service):

# 1. 重新加载 Systemd 配置
sudo systemctl daemon-reload
# 2. 重启服务以应用新配置
sudo systemctl restart nginx

服务无响应需强制重启:

sudo systemctl restart some-service



注意事项:
若服务不支持 reload,systemctl reload 会失败,需改用 restart。
daemon-reload 必须在修改单元文件后执行,否则 Systemd 无法感知变更。
部分服务可能在 daemon-reload 后自动重启(依赖单元文件中的配置,如 auto-reload 特性,但通常需手动重启)。


以下是 systemctl restart、systemctl reload 和 systemctl daemon-reload 的对比及详细说明:

1. systemctl restart
作用对象:正在运行的服务。

行为:
停止服务 → 重新启动服务。
相当于先执行 stop 再 start。

适用场景:
需要完全重启服务(如服务卡死、需要彻底重置状态)。
修改了服务的配置文件,且服务不支持热重载(需重启生效)。

示例:
systemctl restart nginx  # 重启 Nginx 服务


2. systemctl reload
作用对象:支持热重载的服务。

行为:
不中断服务,仅重新加载配置文件。
服务需实现 ExecReload 指令(如 nginx -s reload)。

适用场景:
修改了服务的配置文件,且服务支持热重载(如 Nginx、SSH)。
避免服务中断,平滑应用配置更新。

示例:
systemctl reload nginx    # 平滑重载 Nginx 配置
systemctl reload sshd     # 重载 SSH 服务配置


3. systemctl daemon-reload
作用对象:systemd 系统和服务管理器自身。

行为:
重新加载 systemd 的配置文件(如 .service、.target 文件)。
使新增或修改的单元文件(如自定义服务)生效。

适用场景:
修改了 systemd 的单元文件(如 /etc/systemd/system/*.service)。
添加了新的自定义服务或定时器。

示例:
systemctl daemon-reload    # 重载 systemd 配置
systemctl start my-service # 启动新添加的服务



关键区别总结


命令 作用对象 行为 典型场景
restart 服务 停止 → 启动 彻底重启服务
reload 支持热重载的服务 无缝重载配置 平滑更新服务配置
daemon-reload systemd 自身 重载 systemd 的单元文件 添加/修改服务定义后生效


注意事项
1.服务支持性:
reload 依赖服务自身实现(如 ExecReload),若服务不支持,需用 restart。

2.配置生效顺序:
修改服务配置文件后:先 daemon-reload(若涉及单元文件)→ 再 restart 或 reload。

3.调试建议:
使用 systemctl status <服务名> 查看服务状态。
通过 journalctl -u <服务名> 检查日志。


根据需求选择合适命令,可避免服务中断或配置不生效的问题。



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册成为修仙之旅的少年~

x
游客
回复
*滑块验证:

DA论坛飞机票来了~
快速回复 返回顶部 返回列表