如何实现PHP服务器的平滑关闭或重启的长尾词?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1401个文字,预计阅读时间需要6分钟。
目录+前言+原理+阻塞信号+处理信号+拼接起来+思考+前言+写过+CLI+常驻进程的老司机可能会遇到这样一个问题:在需要更新程序的时候,我该如何安全地关闭老进程?你可能想到NGINX等。
目录
- 前言
- 原理
- 阻塞信号
- 处理信号
- 拼起来
- 思考
前言
写过 CLI 常驻进程的老司机肯定遇到过这么一个问题:在需要更新程序的时候,我要怎样才能安全关闭老进程?你可能会想到NGINX、php-fpm之类的平滑重启是给进程发送USR2信号,然后它就会将当前请求处理完再退出。
但进程是怎样接收信号、处理信号,估计就不是很多人能说清楚了。
原理
要实现平滑关闭/重启不难,这里先讲解两个知识点:
阻塞信号
当我们的程序正在处理一个任务的时候,你肯定不希望它中途被终止,比如说你在执行一个数据库事务,肯定不希望事务还没被提交进程就被终止了。
本文共计1401个文字,预计阅读时间需要6分钟。
目录+前言+原理+阻塞信号+处理信号+拼接起来+思考+前言+写过+CLI+常驻进程的老司机可能会遇到这样一个问题:在需要更新程序的时候,我该如何安全地关闭老进程?你可能想到NGINX等。
目录
- 前言
- 原理
- 阻塞信号
- 处理信号
- 拼起来
- 思考
前言
写过 CLI 常驻进程的老司机肯定遇到过这么一个问题:在需要更新程序的时候,我要怎样才能安全关闭老进程?你可能会想到NGINX、php-fpm之类的平滑重启是给进程发送USR2信号,然后它就会将当前请求处理完再退出。
但进程是怎样接收信号、处理信号,估计就不是很多人能说清楚了。
原理
要实现平滑关闭/重启不难,这里先讲解两个知识点:
阻塞信号
当我们的程序正在处理一个任务的时候,你肯定不希望它中途被终止,比如说你在执行一个数据库事务,肯定不希望事务还没被提交进程就被终止了。

