SOFTELメモ Developer's blog

会社概要 ブログ 調査依頼 採用情報 ...
技術者募集中

【php】 exec()関数などでバックグラウンドでコマンドを実行するとき

問題

phpのexec()やsystem()でバックグラウンドでコマンドを実行したい。

php

答え

phpのマニュアルにあるこの注意は、

注意:
プログラムがこの関数で始まる場合、 バックグラウンドで処理を続けさせるには、 プログラムの出力をファイルや別の出力ストリームにリダイレクトする必要があります。 そうしないと、プログラムが実行を終えるまで PHP はハングしてしまいます。

http://php.net/manual/ja/function.exec.php

こういう風にせよということ。

exec($cmd . " > /dev/null &");

/dev/null 以外のファイルなどでもよいので、出力をリダイレクトすること。

関連するメモ

コメント