Process::daemon

使当前进程蜕变为一个守护进程。

//低于1.9.1的版本
bool Process::daemon(bool $nochdir = false, bool $noclose = false);
//1.9.1或更高版本
bool Process::daemon(bool $nochdir = true, bool $noclose = true);
  • $nochdir,为true表示不要切换当前目录到根目录。
  • $noclose,为true表示不要关闭标准输入输出文件描述符。

此函数在1.7.5版本后可用
1.9.1或更高版本修改了默认值,现在默认nochirnoclose均为true
蜕变为守护进程时,该进程的PID将发生变化,可以使用getmypid()来获取当前的PID



  • farss

    在daemon中没办法输出呢 以输出进程就退出了

  • 天涯

    麻烦作者重视,解决一下上面的这个bug,非常感谢。这样的死循环竟然由里面的一行代码引起外层死循环。看来不可能的事情今天终于发生了。用你们的扩展做一个统一推送平台,由于需要推送的app很多,而且经常需要重启,无法接受只支持前台运行的一个push平台

  • 大隐-于市

    韩老师貌似不怎么在这回复

  • Rango-韩天峰

    你需要strace跟踪一下

  • 止水之约

    如果能知道当前进程的ID就好了

  • start的时候有返回pid呀

  • GrantZuo

    这个例子怎么用呢?