在php中向守护进程发送信号

在php中向守护进程发送信号,php,daemon,Php,Daemon,我有一个用PHP编写的守护进程,它在我的linux机器上运行 我试图通过另一个php文件向它发送信号。 为此,我正在尝试posix_kill函数。但它不起作用 当我运行php页面时,我得到一个错误,php编译时没有启用grep 我想知道如何启用它?或者向守护进程发送信号的替代方法是什么?如果您知道进程的ID,您可以 exec( "kill -SIGKILL 1234", $return ); print_r( $return ); 或者如果您不知道进程ID exec( "pkill -KILL

我有一个用PHP编写的守护进程,它在我的linux机器上运行

我试图通过另一个php文件向它发送信号。 为此,我正在尝试posix_kill函数。但它不起作用

当我运行php页面时,我得到一个错误,php编译时没有启用grep


我想知道如何启用它?或者向守护进程发送信号的替代方法是什么?

如果您知道进程的ID,您可以

exec( "kill -SIGKILL 1234", $return );
print_r( $return );
或者如果您不知道进程ID

exec( "pkill -KILL myDaemon", $r );
print_r( $return );
要查找,您可以发送:

shell> kill -l
如果遇到问题,请将
stderr
重定向到标准输出:

exec( "pkill -KILL myDaemon 2>&1", $r );
print_r( $return );

这将向您显示终端上可能出现的任何错误消息(如果您一直以这种方式执行命令!)。

如果您知道进程的ID,您可以

exec( "kill -SIGKILL 1234", $return );
print_r( $return );
或者如果您不知道进程ID

exec( "pkill -KILL myDaemon", $r );
print_r( $return );
要查找,您可以发送:

shell> kill -l
如果遇到问题,请将
stderr
重定向到标准输出:

exec( "pkill -KILL myDaemon 2>&1", $r );
print_r( $return );

这将显示终端上可能出现的任何错误消息(如果您以这种方式执行命令!)。

尝试使用共享内存、锁或文件。如果进程属于不同的用户,则在进程之间发送信号可能不起作用

例如,如果需要扩展,使用文件或锁可能会对您有所帮助,因为它比使用信号更容易复制


正如我所说的,发送信号的问题是守护进程必须定期查找事件。。。通过使用信号,守护进程中的某个触发器将立即被调用,如果您需要快速响应,这将使您的生活更加轻松。

尝试使用共享内存、锁或文件。如果进程属于不同的用户,则在进程之间发送信号可能不起作用

例如,如果需要扩展,使用文件或锁可能会对您有所帮助,因为它比使用信号更容易复制


正如我所说的,发送信号的问题是守护进程必须定期查找事件。。。通过使用信号,守护进程中的某个触发器将立即被调用,如果您需要快速响应,这将使您的生活更加轻松。

处理PHP脚本上的信号的唯一方法是使用PCNTL库重新编译PHP,该库将为您提供所需的工具/函数


否则,您需要使用解决方法,如:文件标志或锁等。

处理PHP脚本上信号的唯一方法是使用PCNTL库重新编译PHP,该库将为您提供所需的工具/函数


否则,您需要使用解决方法,如:文件标志或锁等。

我知道进程ID,但调用exec(“kill-SIGKILL 1234”,$return);从PHP中不返回任何内容。当我可以从linux提示符下使用相同的命令时,它工作得很好。可能有什么问题?运行php的用户必须是进程的所有者。尝试使用第三个参数
exec()
检查返回代码是否有错误否,进程的所有者是root。当我调用exec时(“kill-SIGKILL$PID”,$return,$out)$return显示空白数组$out显示11表示故障。我将更新我的答案,这样您就可以通过重定向
stderr
从脚本中获取错误消息,但是如何通过php将信号传递给root拥有的进程??这就是我需要的。知道吗?我知道进程ID。但是调用exec(“kill-SIGKILL 1234”,$return);从PHP中不返回任何内容。当我可以从linux提示符下使用相同的命令时,它工作得很好。可能有什么问题?运行php的用户必须是进程的所有者。尝试使用第三个参数
exec()
检查返回代码是否有错误否,进程的所有者是root。当我调用exec时(“kill-SIGKILL$PID”,$return,$out)$return显示空白数组$out显示11表示故障。我将更新我的答案,这样您就可以通过重定向
stderr
从脚本中获取错误消息,但是如何通过php将信号传递给root拥有的进程??这就是我需要的。有什么想法吗?对不起,但是你也需要做一些工作,我不会简单地给出代码…对不起,但是你也需要做一些工作,我不会简单地给出代码。。。