【php】 exec()関数などでバックグラウンドでコマンドを実行するとき
問題
phpのexec()やsystem()でバックグラウンドでコマンドを実行したい。
答え
phpのマニュアルにあるこの注意は、
注意:
プログラムがこの関数で始まる場合、 バックグラウンドで処理を続けさせるには、 プログラムの出力をファイルや別の出力ストリームにリダイレクトする必要があります。 そうしないと、プログラムが実行を終えるまで PHP はハングしてしまいます。
こういう風にせよということ。
exec($cmd . " > /dev/null &");
/dev/null 以外のファイルなどでもよいので、出力をリダイレクトすること。
コメント