- 论坛徽章:
- 0
|
请教各位php5.3的一个cli进程问题,谢谢
情况是这样的,我们服务器上面有一些用php写的crontab 定时运行的脚本,
脚本就是做一些数据库的逻辑处理运算,然后同时只能执行一个cli进程, 所以用了lock加锁,开始处判断加锁,类似下面
if(file_exists(xxx)){
die("is exists");
}
file_put_contents("xxx","1");
然后程序结尾用register_shutdown执行删除lock文件
在php5.2情况下面运行得很好,但是最近一个星期 把环境升级到php5.3以后 发生了一件怪事,
就是比如 /tmp/1.php这个cli脚本 他是一分钟执行一次 ,里面就是些数据库操作语句,然后开始运行很正常, 就是正常的加锁(file_put_contents) 和解锁(unlink) 然后进程退出.
但是一般运行了24小时以后 ,就会慢慢出现那种 lok文件删除了的(我想这里应该是代表程序执行完了),但是程序的进程还存在,
就是用Ps aux|grep "1.php" 终端下面偶尔会出现几个进程,一直不消失(这几个进程几天后仍然没有消失) ,请问各位这种怎么排查 进程不退出的原因呢?谢谢
php5.2是一切正常,所以应该业务逻辑没得问题,
假如说遇到进程退出了,lock文件没有删除,那还好理解,肯定是进程突然崩溃了,没执行解锁,但是是lock文件删了,进程没退出,也不知道用什么工具可以查看此进程正在干什么,麻烦知道的朋友帮忙看看呢,谢谢。
|
|