本文实例讲述了php实现简单的守护进程创建、开启与关闭操作。分享给大家供大家参考,具体如下:
前提要安装有pcntl扩展,可通过php -m查看是否安装
classDaemon{
private$pidfile;
function__construct(){
$this->pidfile=dirname(__FILE__).'/daemontest.pid';
}
privatefunctionstartDeamon(){
if(file_exists($this->pidfile)){
echo"Thefile$this->pidfileexists.\n";
exit();
}
$pid=pcntl_fork();
if($pid==-1){
die('couldnotfork');
}elseif($pid){
echo'startok';
exit($pid);
}else{
//wearethechild
file_put_contents($this->pidfile,getmypid());
returngetmypid();
}
}
privatefunctionstart(){
$pid=$this->startDeamon();
while(true){
file_put_contents(dirname(__FILE__).'/test.txt',date('Y-m-dH:i:s'),FILE_APPEND);
sleep(2);
}
}
privatefunctionstop(){
if(file_exists($this->pidfile)){
$pid=file_get_contents($this->pidfile);
posix_kill($pid,9);
unlink($this->pidfile);
}
}
publicfunctionrun($argv){
if($argv[1]=='start'){
$this->start();
}elseif($argv[1]=='stop'){
$this->stop();
}else{
echo'paramerror';
}
}
}
$deamon=newDaemon();
$deamon->run($argv);
启动
关闭
顶一下
(0)
100%订阅
回复
踩一下
(0)
100%