|
IT News > トピックス > PHP Tips > バックグラウンドで処理させる 外部プログラム実行 時間のかかるプログラムをバックグラウンドで動かしたいsystem 関数や、exec 関数の関数リファレンスを見ると、次のような記述があります。 「この関数を使用してプログラム実行を開始し、バックグラウンドで実行したままにしたい場合には、プログラムの出力をファイルまたは他の出力ストリームにリダイレクトする必要があることにも注意して下さい。さもないと、PHPはそのプログラムの実行が終了するまでハングします。 」 この文章の意味は、下記のプログラムのように記述しなさいという意味です。 system("/home/your/bgprog $arg1 $arg2 > /dev/null &");
ここで、bgprog は、バックグラウンドで走らせたいプログラムです。どんな言語で書いてもかまいません。また、上記例のようにメインの処理から引数を渡したい場合には、bgprog 側できちんと受け取るようにしておかなければなりません。 sleep.sh sleep 10 <?
system("/bin/sh /home/your/sleep.sh > /dev/null &");
echo "OK.";
?>
抜粋URL |