インタラクティブなアプリケーションとはどういう意味ですか? シェルから呼び出してコマンドを送信しますか (のようにuser@device$ application --stop
)、または独自のシェルを提供しますか (postgres や mysql CLI クライアントなど)?
exec() を使用してコマンドを送信し、出力を読み取ります。
$ls_output = exec('ls -l');
アプリケーションの出力をファイルにリダイレクトするだけで継続的なアプリケーションの出力を保存し、Web ページがロードされたときに PHP を使用してこのファイルから読み取ることができます。たとえば10秒に1回、ページを自動的にリロードするJavaScriptを追加すると、CPUが殺されることはありません。このようなもの:
user@device$ application --do-some-work > application_output
そしてPHPで:
$app_output = file_get_contents("application_output");
または、GNU CLI ツールと PHP exec() を使用しても:
$app_output = exec('tail -n 100 application_output | grep FAIL');
しかし、PHP で出力データをフィルタリングできるため、自転車を発明したように思えます。