系统守护进程梨

时间:2011-11-10 17:43:55

标签: php mysql pear

问题,

如何在守护程序中抛弃另一个进程?

我想使用pear系统守护程序库来销毁守护程序,然后抛弃该守护程序中的进程。

所以守护进程运行 然后一个新的过程被抛弃并分别进行计算 然后其他进程被抛弃,与守护进程分开运行。 同时,守护进程不断执行代码并抛弃更多进程

我该如何做到这一点?

3 个答案:

答案 0 :(得分:0)

System_Daemon仅处理启动/关闭处理,一般信号处理和日志记录。

如果要从PHP代码中生成新进程,则需要使用PHP的pcntl functions

答案 1 :(得分:0)

拒斥?我假设你的意思是 spawn

PHP有许多用于创建进程的函数 - 但是(AFAIK)它们都是阻塞的(除了取代当前进程的pcntl_exec)

快速筛选Pear System Daemon的文档,此处理守护进程的过程 - 而不是运行服务器进程和处理多个客户端。如何实现这一点将对您处理启动新流程的方式产生重大影响。

一种解决方案是分叉当前进程的实例来处理传入连接 - 这是一个example on the socket_accept() doc页面。然后,您启动的流程是否通过阻止调用无关紧要。

但是,一个更简单的解决方案是不打扰守护进程/分叉/套接字,只使用stdio通过[x] inetd调用它

下进行。

答案 2 :(得分:0)

之前我遇到过同样的问题。我做的解决方案是让一个system_daemon通过exec调用另一个system_daemon。您需要更改appPidLocation选项以运行相同代码的新实例。

要查看我查看了system_daemon的code的选项列表。