開始時に PHP スクリプトを実行し、WebSocket を使用して継続的にイベントをリッスンし、接続をログに記録する Wordpress プラグインを作成しています。
例えば
shell_exec('php restserver.php >restserver.log 2>&1 &');
上記のスクリプトは、Wordpress API の外部にあります。exec
orを使用shell_exec
することは極端な方法であることを認識しています(多くの場合、使い古された質問への答えです)。
プラグインが無効になっている場合はそれを強制終了し、プラグインが再起動された場合はスクリプトを再起動しないように、restserver.php プロセス ID を記録することができました。
要するに...
- wordpress に依存しないバックグラウンド php プロセスを実行するより良い方法はありますか?
- プラグインの無効化イベントを検出し、この前に kill プロセス コマンドを起動する「ベスト プラクティス」の方法はありますか?
編集: 質問番号 2 の秘密は、register_deactivation_hook()
afterを使用しregister_activation_hook()
てクラスまたは魔法を作成する関数を登録することにあるようです。
とにかくそれは私のために働いた。正しい方法の使用に関する詳細情報exec()
はいつでも歓迎します。