文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>守护进程

守护进程

时间:2007-01-08  来源:huqwstar53

6.5.1  基本概念

  • 守护进程就是在后台执行, 没有控制终端或登录 Shell 的进程

6.5.2  实现方法

  1. 关闭文件描述符: for (i=0; i < NOFILE; i++) close (i);
  2. 甩开控制终端: 打开 /dev/tty, 然后用 ioctl 该文件上执行 TIOCNOTTY 命令
  3. 脱离会话和进程组
    =============================================================================== * 使用 setsid 设置为新会话的领头进程 * 因为 setsid 要求调用进程不是会话的领头进程时才有效. * 因此, 首先可用 fork 派生, 并结束父进程. * 之后调用 setsid, 子进程成为新会话的领头进程, 从而与原有会话, 进程组, tty 脱离. * 但是, 为避免作为新会话领头进程的子进程在打开一个终端设备时, 拥有一个控制终端. * 再次派生, 并结束父进程, 可让子进程成为非会话领头进程. --------------------------------------- if (fork ()) exit (0); setsid (); if (fork ()) exit (0); =============================================================================== 
  4. 改变工作目录到根目录: chdir ("/")
  5. 进程的 umask 设置为 0: umask (0)
  6. 处理 SIGCHLD 信号, 为避免形成僵尸进程
相关阅读 更多 +
排行榜 更多 +
Unity Connect

Unity Connect

学习教育 下载
青橙记录本

青橙记录本

商务办公 下载
脑洞惊魂夜

脑洞惊魂夜

休闲益智 下载