php 进程例子,用php守护另一个php进程的例子_php实例
PHP后端中,工作进程启动时将其PID写入文件;守护进程定期读取该文件,并通过ps命令验证对应进程是否存活。该方法利用PID唯一性避免同名进程误判,轻量精准,无需任何外部依赖,简单可靠。
PHP后端开发中,偶尔会遇到这样一个需求:一个常驻进程需要被另一个进程监控着,一旦挂了就马上拉起。听起来有点像进程守护,但又不希望用supervisor这类系统级工具,只想用纯PHP来实现。下面这个思路很实用,而且巧妙地避开了单纯靠进程名匹配可能带来的误判问题。

核心逻辑其实很清晰:被守护的进程(b.php)在启动时把自己的进程ID写到一个专门的文件里(比如c.pid)。守护进程(a.php)定期去读这个文件,如果文件存在且不为空,就把里面的PID取出来,然后通过ps -p PID | grep 文件名来确认这个进程是否还活着。为什么不直接用ps aux | grep 文件名?因为如果服务器上有多个同名的PHP脚本在跑,grep出来的结果会一锅粥,根本分不清到底是不是你要的那个进程。用PID文件的方式精准定位,才是靠谱的做法。
下面是a.php的代码实现——
0) echo('runing');
else{echo 'not run';}
?>
而b.php作为被守护的一方,做的事情同样简单——
注意b.php里每循环一次都会重新写入PID,这个操作不是多余的——一旦进程因为某些原因被重启(比如手动kill后又被守护进程拉起),新的PID会即时更新,守护进程那边拿到的永远是当前正确的进程号。整个方案轻量、精准,没有外部依赖,很适合在多个并发的常驻进程场景下使用。
Photoshop 2026 是 Adobe 推出的专业图像处理与视觉设计软件,支持 Windows、macOS 和 iPad 等平台,广泛应用于摄影修图、电商设计、平面海报、数字绘画及视觉合成等创作场景。
Blender 是一款免费开源、跨平台的专业 3D 创作软件,集建模、动画、渲染、视频编辑与视觉合成等功能于一体,广泛应用于影视动画、游戏设计和建筑可视化等领域。软件支持 Cycles 物理渲染器与 Eevee 实时渲染引擎,并提供多边形建模、骨骼绑定、物理模拟等专业工具。Blender 兼容 Windows、macOS 和 Linux 系统,安装包轻巧、运行流畅,依托活跃的全球开发者社区持续更新,是从初学者到专业创作者都值得选择的正版 3D 创作工具。
Photoshop 2026 是 Adobe 推出的专业图像处理与视觉设计软件,支持 Windows、macOS 和 iPad 等平台,广泛应用于摄影修图、电商设计、平面海报、数字绘画及视觉合成等创作场景。
Blender 是一款免费开源、跨平台的专业 3D 创作软件,集建模、动画、渲染、视频编辑与视觉合成等功能于一体,广泛应用于影视动画、游戏设计和建筑可视化等领域。软件支持 Cycles 物理渲染器与 Eevee 实时渲染引擎,并提供多边形建模、骨骼绑定、物理模拟等专业工具。Blender 兼容 Windows、macOS 和 Linux 系统,安装包轻巧、运行流畅,依托活跃的全球开发者社区持续更新,是从初学者到专业创作者都值得选择的正版 3D 创作工具。















