问题,
如何在守护程序中抛弃另一个进程?
我想使用pear系统守护程序库来销毁守护程序,然后抛弃该守护程序中的进程。
所以守护进程运行 然后一个新的过程被抛弃并分别进行计算 然后其他进程被抛弃,与守护进程分开运行。 同时,守护进程不断执行代码并抛弃更多进程
我该如何做到这一点?
答案 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的选项列表。