首页 > Linux, PHP > 创建PHP守护进程后台运行,监控状态退出自动重启

创建PHP守护进程后台运行,监控状态退出自动重启

经常用到PHP脚本写的小程序需要在服务器端保持后台运行,除了使用screen等工具外,这里介绍使用Linux shell编写一个小工具实现PHP脚本程序在后台保持运行,不受终端退出影响,且能自动监测脚本运行状态,对因其他因素导致程序退出的情况自动进行脚本重启,实现守护运行.

创建一个shell脚本 daemon.sh,内容如下:

#!/bin/bash

count=`ps -ef | grep daemon.php | grep -v “grep” | wc -l` #搜索进程查看是否存在正在执行的进程
echo $count
if [ $count -lt 1 ]; then
ulimit -c unlimited
nohup /usr/local/bin/php /root/test/daemon.php & #注意脚本路径需要填写绝对路径

echo $(date), start success >> /root/test/daemon.log #记录日志
else
echo $(date), running >> /root/test/daemon.log
fi

daemon.php 为我们的PHP小程序入口,可以根据需要进行修改

为脚本添加执行权限

$ chmod +x daemon.sh

为实现自动监测功能,需要借助 LInux的 crontab 定时执行脚本,添加定时任务每分钟执行一次

* * * * * /root/test/daemon.sh

 

可以改进的地方

  1. 可以通过netstat -lnp 检测端口是否在监听,如果未在监听,则执行restart
  2. 通过一个check.php发送一段带有逻辑的请求,试探服务器是否可以正常工作,如果无法工作,执行restart
  3. 使用supervisor监控进程的工具
  4. 如果在Docker容器中使用,可以在docker run时增加参数–restart=always
分类: Linux, PHP 标签: ,
  1. 本文目前尚无任何评论.

=3加7(必填)请输入两数相加的结果。