コマンド実行
php からサーバコマンドを実行するには
exec と system の2つの関数が用意されている。
二者の違いは、出力を返すか返さないかみたいだけど
引数指定次第でどちらも出力を返すみたいなので
結果的には、同じ働きなのかしらね~。
string exec ( string $command [, array &$output [, int &$return_var ]] )
第1引数:コマンド文字列
第2引数:出力格納用変数。省略可。省略すると出力を受け取れない
第3引数:コマンド実行結果ステータス格納用変数。省略可。省略するとステータスを受け取れない
string system ( string $command [, int &$return_var ] )
第1引数:コマンド文字列
第2引数:コマンド実行結果ステータス格納用変数。省略可。省略するとステータスを受け取れない
どちらもコマンド文字列に「 > /dev/null &」と付記してやることで、非同期に処理を実行できる。
注意:
プログラムがこの関数で始まる場合、 バックグラウンドで処理を続けさせるには、
プログラムの出力をファイルや別の出力ストリームにリダイレクトする必要があります。
そうしないと、プログラムが実行を終えるまで PHP はハングしてしまいます。
どうやら、上記付記内容は、出力をリダイレクトさせるものらしい。
SAMURAI:【PHP入門】外部コマンドの実行(exec)とコマンドライン実行の方法(2017-10-16)