用php写daemon程序

Posted on 2010-11-19 13:55 PHP博客 阅读(297) 评论(0)  编辑 收藏 引用 网摘
我们知道PHP CLI模式下可以使用pcntl函数编写多进程应用,同样也可以写daemon程序(比如crontab),其实代码很简单,利用setsid实现:Linux分区工具和Fdisk使用方法

daemon.php:
if(pcntl_fork()) {
exit;
}
posix_setsid();//请man setsid
if(pcntl_fork()) {
exit;
}
# process is now completely daemonized
sleep(1000); 
//通常daemon程序应该是等待一个任务去处理的,比如listen或者定期检查,为了能看到daemon程序,如果这里不sleep就会退出摩尔庄园魔法太阳帽_摩尔庄园橘子豆
在命令行执行
php daemon.php
ps aux|grep daemon
应该就能看到有一个php daemon.php的进程在运行

补充一下,如果想更改daemon程序的用户可以在程序中加入,但是可能需要root权限:
$pw= posix_getpwnam('nobody');
posix_setuid($pw['uid']);
posix_setgid($pw['gid']);

只有注册用户登录后才能发表评论。
网站导航:

posts - 139, comments - 0, trackbacks - 0, articles - 0

Copyright © PHP博客