php-cgi莫名其妙的崩溃

homeserver通过FastCGI协议与php-cgi进程进行通信来执行php脚本文件。
一直以来都发现php-cgi进程不是很稳定,可能是我在实现协议上有不当的地方。运行一段时间后,例如一两天,phpcgi进程就会自动结束,也不留下任何相关信息。
目前,我通过写批处理文件,在进程结束后自动建立新进程来临时解决这个问题。之前在windows上是写一个批处理文件,然后copy几万行执行命令,这样就相当于无止境地执行。
在Linux上做的更简单,可能是我不知道在windows的批处理里怎么写循环。

#!/bin/bash
while true
    echo “Starting php server …”
    php-cgi -b 127.0.0.1:8080
    echo “Server exited. Restart it …t”
    sleep 10s
done

为啥要sleep 10s呢?因为php-cgi进程异常结束了,socket还在占用着8080端口,如果不睡眠一下,那么会耗尽CPU资源,知道端口能够使用。这样可能导致日志文件的体积疯狂增长,直到硬盘资源枯竭而止。。。

php-cgi莫名其妙的崩溃》有11个想法

  1. hi

    windows的批处理 这样能吗

    @echo off

    :a

    echo “Starting php server …”

    php-cgi -b 127.0.0.1:8080

    echo “Server exited. Restart it …t”

    ping 127.0.0.1 -n 10>nul

    goto :a

    ping 127.0.0.1 -n 10>nul 为延时10秒左右

    回复
  2. jimku

    我在linux下把php打了php-fpm补丁,进程挂掉的情况还是没有见到,只是用homeserver来跑php,有时会出现空白。

    回复
  3. Xiaoxia

    呃。。。虽然用windows时间相当长,但是bat少接触,主要是不喜欢那种丑陋的语法。一般都会写C程序来代替bat文件。

    回复

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据