讲师中心 微信公众号
AI工具推荐 视频效率加速

Swoole常见重启命令问题_Swoole重启操作常见汇总【汇总】

冬芳同学_8630

冬芳同学_8630

发布时间:2026-03-13 20:34:01

|

455人浏览过

|

来源于php中文网

原创

正确重启Swoole服务需先优雅关闭再启动:用kill -15主进程PID触发onShutdown,确认退出后重新执行启动命令;reload仅重载worker进程,不生效于配置变更。

swoole常见重启命令问题_swoole重启操作常见汇总【汇总】

如何正确重启 Swoole 服务(非 reload)

直接 kill 进程再启动,是多数人踩坑的起点。Swoole 的 swoole_http_server 或 swoole_websocket_server 启动后会 fork 多个子进程,仅用 kill -9 主进程 PID 很可能留下 worker 进程残留,导致端口被占、新实例起不来。

真正安全的重启分两步:先优雅关闭,再重新启动。

  • 查主进程 PID:ps aux | grep 'php.*server.php' | grep -v grep | awk '{print $2}' | head -1
  • 发 SIGTERM(不是 SIGKILL):kill -15 <pid></pid> —— 这会触发 onShutdown 回调,释放资源、关闭连接
  • 确认进程退出:ps -p <pid></pid> 返回空则完成;若超时未退,再补 kill -9
  • 重新执行启动命令,例如:php server.php start

swoole_reload 不等于重启,它只重载 worker 进程

swoole_reload 是 Swoole 提供的热重载机制,但它只对 worker 进程有效,manager、master、task_worker 等进程不会重启。这意味着:配置变更(如 worker_num、task_worker_num)、扩展加载、全局常量定义等,reload 后完全不生效。

常见误用场景:改了 server->set() 参数后执行 kill -USR1,发现没变化——因为 set 配置只在 new 实例时读取一次。

Swoole 6.1.1
Swoole 6.1.1

Swoole 6.1.1 是一个专为 PHP 设计的高性能事件驱动并发网络引擎。作为稳定版,它修复了编译时对 zlib 依赖的缺失及 curl 模块的内存安全风险。该版本支持协程、多线程与多进程架构,内置 TCP/HTTP/WebSocket 服务器,能够显著提升 PHP 在微服务、实时通信等场景下的执行效率与并发能力。

下载
  • 适用 reload 的只有 PHP 业务代码逻辑更新(如路由处理函数、控制器方法)
  • 信号必须发给 master 进程 PID,不是 worker PID
  • 需确保 reload_async = true(默认开启),否则 reload 会阻塞请求
  • 若启用了 opcache,记得清掉:opcache_reset() 或重启 php-fpm(如果混用)

systemd 管理 Swoole 时 restart 失败的典型原因

用 systemctl restart swoole-server.service 却卡住或报 Failed to restart,大概率是 service 文件没写对。Swoole 进程默认以 daemon 模式运行,而 systemd 要求主进程前台驻留(即不能 fork 到后台)。

关键点:必须设置 daemonize = false,并让 PHP 脚本不 exit,否则 systemd 会认为服务已“结束”。

  • PHP 启动脚本末尾不能有 exit 或 die,server 实例要保持运行
  • service 文件里加 Type=simple(不是 forking),并设 Restart=always
  • 日志看失败原因:journalctl -u swoole-server -n 50 -f,常见错误是 Address already in use(上一进程没彻底退出)
  • 避免在 ExecStart 里加 & 或 nohup,systemd 自己管进程生命周期

docker 中重启 Swoole 容器为何总连不上?

Docker 容器内 Swoole 绑定 0.0.0.0:9501 没问题,但宿主机 curl localhost:9501 失败,往往不是重启问题,而是网络或启动时机问题。

Swoole 启动需要时间初始化 reactor、acceptor 等,容器刚 start 就立刻发请求,大概率 502/Connection refused。

  • 在 docker-compose.yml 中加 healthcheck,用 curl -f http://localhost:9501/ping || exit 1
  • 避免使用 restart: always + daemonize = true 组合,会导致容器内多个 Swoole 实例争抢端口
  • entrypoint 脚本中不要用 sleep 2 硬等,应检测端口就绪:while ! nc -z 127.0.0.1 9501; do sleep 0.5; done
  • 镜像里 PHP 版本和 Swoole 扩展版本必须严格匹配,php --ri swoole 输出中若有 undefined symbol,重启也白搭
事情说清了就结束

热门AI工具

更多
WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

VibeKnow
VibeKnow Hot

一款AI视频创作工具,主要用于全球首个AI知识视频创作平台,文档、文章、网页,一键生成视频,适合需要提升相关任务效率的用户。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

超级简历WonderCV

一款AI办公效率工具,主要用于免费求职简历模版下载制作,应届生职场人必备简历制作神器,适合需要提升相关任务效率的用户。

Seko
Seko Hot

一款AI视频创作工具,主要用于商汤科技推出的创编一体的AI短视频创作Agent,适合需要提升相关任务效率的用户。

讯飞绘文

讯飞绘文是一款由科大讯飞推出的一站式 AIGC 内容运营平台。

墨刀AI
墨刀AI Hot

一款AI图像与设计工具,主要用于产品经理的专属智能体,适合需要提升相关任务效率的用户。

PixPix
PixPix Hot

PixPix是一款面向电商视觉生产的AI商品图生成工具。

相关专题

更多
swoole为什么能常驻内存
swoole为什么能常驻内存

swoole常驻内存的特性:1. 事件驱动模型减少内存消耗;2. 协程并行执行任务占用更少内存;3. 协程池预分配协程消除创建开销;4. 静态变量保留状态减少内存分配;5. 共享内存跨协程共享数据降低内存开销。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

941

2024.04.10

Swoole 安装与快速入门指南
Swoole 安装与快速入门指南

面向 PHP 开发者的 Swoole 入门指南,详细讲解 Swoole 扩展的安装方式(PECL 一键安装 / 源码编译安装 / Docker 镜像)、不同操作系统(Ubuntu/CentOS/macOS)的依赖准备与编译参数选择、php.ini 中扩展加载配置与 phpinfo() 验证、Swoole 与传统 PHP-FPM 运行模式的核心区别、第一个 TCP Server 与 HTTP Server 的创建与启动,帮助开发者快速理解

262

2026.05.18

Swoole 协程与异步编程实战
Swoole 协程与异步编程实战

深入讲解 Swoole 协程(Coroutine)体系的核心机制与实战应用,涵盖协程的创建方式(go / Co::create)与调度原理、协程与传统多进程/多线程的性能优势对比、Channel 通道的生产者-消费者通信模型、WaitGroup 协程同步等待、defer 延迟执行与资源释放、协程化 MySQL / Redis / HTTP 客户端的一键 Hook(Runtime::enableCoroutine)、连接池(Connect

354

2026.05.18

Swoole HTTP/WebSocket 服务器开发
Swoole HTTP/WebSocket 服务器开发

以 Web 应用开发为核心场景,讲解 Swoole HTTP Server 与 WebSocket Server 的完整开发流程,涵盖 HTTP Server 的请求解析(GET/POST/文件上传)与响应输出、路由分发设计与中间件实现、Cookie / Session 会话管理(结合 Redis 存储)、静态文件服务配置、WebSocket Server 的握手连接/消息收发/广播推送/心跳检测实现、在线聊天室与实时通知的项目实战、与

436

2026.05.18

Swoole与主流PHP框架集成教程合集
Swoole与主流PHP框架集成教程合集

本专题讲解 Swoole 与主流 PHP 框架的集成方案与性能提升实践,涵盖 Laravel Octane 的安装配置与 Swoole Worker 驱动接入、常驻内存下全局变量污染与单例陷阱的排查处理、请求上下文隔离策略、Hyperf 原生协程框架的项目搭建与注解式路由/依赖注入/AOP 切面使用、Swoft 框架的微服务组件集成、ThinkPHP 接入 Swoole 的改造要点、框架迁移中的兼容性问题(文件操作/Session/静态

326

2026.05.18

Swoole进程管理与高性能调优教程合集
Swoole进程管理与高性能调优教程合集

从架构原理到参数配置,全面讲解 Swoole 的进程管理体系与性能优化方法,涵盖 Master / Manager / Worker / Task 四层进程模型解析、Worker 进程数与 Task 进程数的合理配置、进程间通信(sendMessage / Pipeline / UnixSocket)机制、定时器(Timer / Tick)的使用与注意事项、Table 共享内存表的高性能数据共享、max_request 进程回收防止内存

262

2026.05.18

Swoole 微服务与分布式架构实践
Swoole 微服务与分布式架构实践

聚焦 Swoole 在微服务与分布式系统中的工程实践,讲解基于 Swoole TCP Server 的 RPC 服务开发(自定义协议/Protobuf 序列化/连接复用)、服务注册与发现(Consul / Nacos 对接)、负载均衡策略与健康检查、分布式任务队列(Task Worker / 结合 Redis 队列)实现异步处理、TCP 长连接网关的设计与万级连接管理、Swoole Process / ProcessPool 自定义守护

439

2026.05.18

Vite 项目如何打包和部署
Vite 项目如何打包和部署

Vite项目打包部署专题汇集生产构建、产物预览、输出目录、资源路径、Nginx与GitHub Pages部署及常见白屏和路由404问题的已审核文章,帮助读者完成上线流程。

40

2026.10.28

Vite 如何搭配 Vue.js
Vite 如何搭配 Vue.js

Vite搭配Vue.js专题汇集创建Vue 3项目、配置开发环境、路径别名、Vue插件、代理、多环境构建与调试的已审核文章,帮助读者完成从初始化到日常开发的配置。

20

2026.10.28

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Swoole手册
Swoole手册

共0课时 | 0人学习

ThinkPHP5.1完全开发手册
ThinkPHP5.1完全开发手册

共0课时 | 0人学习

swoole进程树解析
swoole进程树解析

共4课时 | 0.3万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn