<?php
$pid = pcntl_fork(); // fork
if ($pid < 0)
exit;
else if ($pid) // parent
exit;
else { // child $sid = posix_setsid(); if ($sid < 0)
exit; for($i = 0; $i <= 60; $i++) { // do something for 5 minutes
sleep(5);
}
}
?>

  这是php官方手册给出的方法,不过在Unix环境高级编程中有这样一个提示:在基于System V的系统中,有些人建议再次焦勇fork,终止父进程,继续使用子进程中的守护进程。这就保证了守护进程不是会话首进程,于是按照System V规则,可以防止它取得控制终端。

  所以可能以下代码会更好一些:

<?php
$pid = pcntl_fork(); // fork
if ($pid < 0)
exit('fork fail');
else if ($pid) // parent
exit(0);
else { // child $sid = posix_setsid(); if ($sid < 0)
exit('set sid fail'); $pid = pcntl_fork(); if ($pid < 0)
exit('fork fail'); else if ($pid) //parent process
eixt(0);
else { //chlid
//code ....
       exit(0); 
} }
?>

  

最新文章

  1. Nodejs学习笔记(四)--- 与MySQL交互(felixge/node-mysql)
  2. java语言实现堆排序
  3. [转]StructLayout特性
  4. Array.prototype.slice.call(arguments) 类数组转成真正的数组
  5. hdoj 5112 A Curious Matt
  6. bzoj1264
  7. Arbitrage
  8. 使用OpenFileDialog实现图片上传
  9. CodeKata
  10. egrep和grep有什么区别
  11. 2.IKAnalyzer 中文分词器配置和使用
  12. .net 调用Oracle.Data.Access 组件提供的用于批量操作的方法—获取数据库表结构方法和跟参数赋值方法
  13. UVALive 4119 Always an integer (差分数列,模拟)
  14. 使用CSS来显示XML
  15. java配置环境变量,无法也行javac问题
  16. linux在tomcat中指定jdk
  17. 爬虫之pyspider
  18. django mysql 数据库配置
  19. 结对项目junit测试用例
  20. JAVA基础部分复习(五、JAVA反射)

热门文章

  1. windows上的docker容器内安装vim
  2. github 丢失的本地提交
  3. C# this.Invoke()的作用与用法
  4. 【Hadoop】Hadoop mr wordcount基础
  5. mongoDB - 插入数据
  6. PHP结巴程序实现
  7. hdu4888 多校B 最大流以及最大流唯一推断+输出方案
  8. poj1062昂贵的聘礼
  9. 【BIEE】分析的解析机制
  10. chrome浏览器提取网页视频