我正在编写一个 Wordpress 插件,它在启动时运行 PHP 脚本,并使用 WebSockets 连续监听事件并记录连接。
例如
shell_exec('php restserver.php >restserver.log 2>&1 &');
提到的脚本在 Wordpress API 之外。我知道使用exec
orshell_exec
是一种极端的方法(通常是一个磨损问题的答案)。
我设法记录了 restserver.php 进程 ID,以便在插件被禁用时能够将其杀死,并且在插件重新启动时不重新启动脚本。
所以简而言之...
- 有没有更好的方法来运行独立于 wordpress 的后台 php 进程?
- 是否有“最佳实践”方法来检测插件禁用事件并在此之前启动 kill process 命令?
编辑:问题 2 的秘诀显然在于使用register_deactivation_hook()
afterregister_activation_hook()
来注册你的类或函数,使魔术。
无论如何,它对我有用。任何有关使用exec()
正确方法的进一步信息总是受欢迎的。