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

简介:

看了这篇: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 退出父进程

文档中有这么个例子:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?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);
    }
}

?>

本文转自轩脉刃博客园博客,原文链接:http://www.cnblogs.com/yjf512/p/3288477.html ,如需转载请自行联系原作者

相关文章
|
Linux
孤儿进程,守护进程,僵尸进程
孤儿进程,守护进程,僵尸进程
202 0
|
9月前
|
Linux
Linux:守护进程(进程组、会话和守护进程)
守护进程在 Linux 系统中扮演着重要角色,通过后台执行关键任务和服务,确保系统的稳定运行。理解进程组和会话的概念,是正确创建和管理守护进程的基础。使用现代的 `systemd` 或传统的 `init.d` 方法,可以有效地管理守护进程,提升系统的可靠性和可维护性。希望本文能帮助读者深入理解并掌握 Linux 守护进程的相关知识。
455 7
|
10月前
|
PHP Docker 容器
如何在宿主主机运行容器中的php守护进程
在Docker容器中同时运行多个程序(如Nginx+PHP+Ftp)时,需用`docker exec`命令启动额外服务。首先通过`php -v`查看PHP版本,再用`which php-fpm7.4`确认PHP安装路径,通常返回`/usr/sbin/php-fpm7.4`。最后直接运行该路径启动PHP-FPM服务,确保其正常工作。
187 14
|
PHP
PHP的pcntl多进程用法实例
PHP使用PCNTL系列的函数也能做到多进程处理一个事务。
120 12
|
Linux C++
Linux c/c++进程之僵尸进程和守护进程
这篇文章介绍了Linux系统中僵尸进程和守护进程的概念、产生原因、解决方法以及如何创建守护进程。
316 0
python-- 进程的常用属性、守护进程
python-- 进程的常用属性、守护进程
|
调度 Python
并发编程 , 孤儿进程 , 守护进程
并发编程 , 孤儿进程 , 守护进程
|
数据采集 监控 调度
Python的进程,以及进程同步,守护进程详细解读
Python的进程,以及进程同步,守护进程详细解读
325 4
|
Shell Linux
【Linux守护进程】二、守护进程详解
【Linux守护进程】二、守护进程详解
293 0
【Linux守护进程】二、守护进程详解
|
监控 Shell Linux
Shell - 监控某个进程的内存占用情况、主机CPU、磁盘空间等信息以及守护进程
Shell - 监控某个进程的内存占用情况、主机CPU、磁盘空间等信息以及守护进程
486 0