数码资讯
用PHP保护另一个PHP进程的示例
选购提示
关注价格、性能、续航、售后和真实使用场景,理性比较后再下单。
你想用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);
}
>
想守护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);
}
>
声明:本文内容用于数码产品信息整理与选购参考,具体价格、库存、售后政策以官方渠道和电商页面实时信息为准。