你想用PHP来保护另一个PHP程序(Apache模块运行,除了Nginx,等)

想守护b.php A.php

在b.php,使用getmypid()函数来获取当前进程的ID写ID为c.pid文件,如果程序执行删除或清空c.pid文件

在c.pid A.php,验证是否存在以及它是否是空的。如果它不是空的,读的PID,执行ps -p PID | grep文件名通过exec来决定是否执行或不执行相应的操作,然后判断后。

有人会问,为什么不直接| ps aux grep文件名,文件名,这里主要是考虑的情况下将是一个问题

A.php代码

复制代码代码如下所示:

<

ID = intval美元(约合argv { 1 });

如果(!File_exists ('pid'.$id.'.pid')) {

不运行回声;

出口;

}

$content = file_get_contents('pid'。$ ID。PID);

如果(空($)){

不运行回声;

出口;

}

exec(PS体育内容的b.php美元。| grep,$ PID);

如果(计数($ PIDS)> 0)回波('runing);

否则{不运行;}

>



b.php代码

复制代码代码如下所示:

<

ID = intval美元(约合argv { 1 });

如果(空(id))退出;

File_put_contents ('pid'.$id.'.pid', getmypid () );

当(1){

file_put_contents('pid'。$ ID,PID,getmypid());

睡眠(100);

}

>