Home >php教程 >php手册 >PHP如何将进程作为守护进程

PHP如何将进程作为守护进程

WBOY
WBOYOriginal
2016-06-06 19:47:58948browse

看了这篇:http://blog.codinglabs.org/articles/write-daemon-with-php.html 对里面的posix_setsid()不解 文档解释是“Make the current process a session leader” 参考文档:http://linux.die.net/man/2/setsid 意思就是在一个进程组之间(父进程和子进

看了这篇:http://blog.codinglabs.org/articles/write-daemon-with-php.html

对里面的posix_setsid()不解

文档解释是“Make the current process a session leader”

参考文档:http://linux.die.net/man/2/setsid

意思就是在一个进程组之间(父进程和子进程)调用这个函数的进程会被选举为进程组的leader

所以让一个进程成为守护进程的方法就是:

1 fork出一个子进程

2 在子进程posix_setsid()

3 退出父进程

文档中有这么个例子:

<?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);
        }
    }
?>
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn