fork+exit+php,php实现简单的守护进程创建、开启与关闭操作
本文實例講述了php實現簡單的守護進程創建、開啟與關閉操作。分享給大家供大家參考,具體如下:
前提要安裝有pcntl擴展,可通過php -m查看是否安裝
class?Daemon?{
private?$pidfile;
function?__construct()?{
$this->pidfile?=?dirname(__FILE__).'/daemontest.pid';
}
private?function?startDeamon()?{
if?(file_exists($this->pidfile))?{
echo?"The?file?$this->pidfile?exists.\n";
exit();
}
$pid?=?pcntl_fork();
if?($pid?==?-1)?{
die('could?not?fork');
}?else?if?($pid)?{
echo?'start?ok';
exit($pid);
}?else?{
//?we?are?the?child
file_put_contents($this->pidfile,?getmypid());
return?getmypid();
}
}
private?function?start(){
$pid?=?$this->startDeamon();
while?(true)?{
file_put_contents(dirname(__FILE__).'/test.txt',?date('Y-m-d?H:i:s'),?FILE_APPEND);
sleep(2);
}
}
private?function?stop(){
if?(file_exists($this->pidfile))?{
$pid?=?file_get_contents($this->pidfile);
posix_kill($pid,?9);
unlink($this->pidfile);
}
}
public?function?run($argv)?{
if($argv[1]?==?'start')?{
$this->start();
}else?if($argv[1]?==?'stop')?{
$this->stop();
}else{
echo?'param?error';
}
}
}
$deamon?=?new?Daemon();
$deamon->run($argv);
啟動
關閉
頂一下
(0)
100%訂閱
回復
踩一下
(0)
100%
總結
以上是生活随笔為你收集整理的fork+exit+php,php实现简单的守护进程创建、开启与关闭操作的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php逗号为什么比点号快,[PHP]
- 下一篇: php 注册回调函数,PHP回调函数