如何实现PHP服务器的平滑关闭或重启操作?

更新于
2026-09-28 20:12:01
1阅读来源:SEO问题
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计1423个文字,预计阅读时间需要6分钟。

如何实现PHP服务器的平滑关闭或重启操作?

目录前言原理阻塞信号处理信号拼接起来思考前言写过CLI的老司机可能会遇到这样一个问题:在需要更新程序的时候,如何才能安全地关闭老进程?

问题:在需要更新程序的时候,我应该如何才能安全地关闭老进程?

如何实现PHP服务器的平滑关闭或重启操作?

解决方案:你可能想到使用NGINX等工具。

目录
  • 前言
  • 原理
    • 阻塞信号
    • 处理信号
  • 拼起来
    • 思考

      前言

      写过 CLI 常驻进程的老司机肯定遇到过这么一个问题:在需要更新程序的时候,我要怎样才能安全关闭老进程?你可能会想到NGINX、php-fpm之类的平滑重启是给进程发送USR2信号,然后它就会将当前请求处理完再退出。

      但进程是怎样接收信号、处理信号,估计就不是很多人能说清楚了。

      原理

      要实现平滑关闭/重启不难,这里先讲解两个知识点:

      阻塞信号

      当我们的程序正在处理一个任务的时候,你肯定不希望它中途被终止,比如说你在执行一个数据库事务,肯定不希望事务还没被提交进程就被终止了。

      阅读全文

      本文共计1423个文字,预计阅读时间需要6分钟。

      如何实现PHP服务器的平滑关闭或重启操作?

      目录前言原理阻塞信号处理信号拼接起来思考前言写过CLI的老司机可能会遇到这样一个问题:在需要更新程序的时候,如何才能安全地关闭老进程?

      问题:在需要更新程序的时候,我应该如何才能安全地关闭老进程?

      如何实现PHP服务器的平滑关闭或重启操作?

      解决方案:你可能想到使用NGINX等工具。

      目录
      • 前言
      • 原理
        • 阻塞信号
        • 处理信号
      • 拼起来
        • 思考

          前言

          写过 CLI 常驻进程的老司机肯定遇到过这么一个问题:在需要更新程序的时候,我要怎样才能安全关闭老进程?你可能会想到NGINX、php-fpm之类的平滑重启是给进程发送USR2信号,然后它就会将当前请求处理完再退出。

          但进程是怎样接收信号、处理信号,估计就不是很多人能说清楚了。

          原理

          要实现平滑关闭/重启不难,这里先讲解两个知识点:

          阻塞信号

          当我们的程序正在处理一个任务的时候,你肯定不希望它中途被终止,比如说你在执行一个数据库事务,肯定不希望事务还没被提交进程就被终止了。

          阅读全文