Wordpress插件禁用事件

时间:2012-08-29 20:06:16

标签: php wordpress plugins

我正在编写一个Wordpress插件,它在启动时运行PHP脚本,并使用WebSockets和日志连接持续监听事件。

e.g。

shell_exec('php restserver.php >restserver.log 2>&1 &');

提到的脚本不在Wordpress API中。我知道使用execshell_exec是一种极端的方法(通常是一个问题的答案)。

我已设法记录restserver.php进程ID,以便在插件被禁用时能够终止它,并且如果重新启动插件则不会重新启动脚本。

所以简而言之......

  1. 有没有更好的方法来运行独立于wordpress的后台php进程?
  2. 是否有“最佳实践”方法来检测插件禁用事件并在此之前启动kill process命令?
  3. 编辑:问题2的秘诀显然在于register_activation_hook()之后使用register_deactivation_hook()来注册你的一个或多个具有魔力的函数。

    无论如何它对我有用。有关以正确方式使用exec()的任何进一步信息总是受欢迎的。

1 个答案:

答案 0 :(得分:0)

有一个名为GearMan的unix服务器,用于并行执行各种任务。它有一个PHP客户端库,允许您启动工作程序并监视它们的执行,包括后台作业。所以这将是一种(优雅)方式,但它需要安装GearMan服务器和客户端库,这意味着管理访问。

另一种简单的方法是为此添加cronjob。这只需要访问写入cronjob文件并要求cronjob守护程序加载新设置。从cronjob中为您的任务目的启动PHP比从exec调用启动它更有意义。