わかばです。
WWWアプリケーションを作成しております。
CGIでサブスクリプトをバックグラウンド実行させたままCGIの次の処理を実行する方法
について教えて下さい。
以下のコードのようにCGI(perl.cgi)からシェルスクリプト(sclipt1)を呼び出し、
シェルスクリプトの中でシェルスクリプトファイル(script2)を作成して実行します。
script2の実行にはかなりの時間がかかります。
[perl.cgi]の
open OUT, sudo tcsh script1 & |; の部分を、
open OUT, sudo tcsh script1 &;
と変えてみたらすぐにCGIの次の処理を実行しましたが、sclipt1は
最後まで実行できませんでした。
script1, script2をバックグラウンドで実行させたままCGIの次の処理を
実行することはできるのでしょうか。
もし可能でしたらその方法を教えて下さい。
sclipt1の戻り値は取得できなくても構わないです。
説明が判りづらく申し訳ございません。
よろしくお願い致します。
※コードをそのまま載せることが難しいため簡略させていただきます。
[perl.cgi]
:
open OUT, sudo tcsh script1 & |;
@return = <OUT>;
close OUT;
:
[sclipt1]
#script2作成
set scrfile = script2
echo #\!/bin/tcsh >> $scrfile
echo setenv
PATH /usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin
:/root/bin >> $scrfile
#script2実行
$exef &
echo $return
:
[script2]
:
#時間のかかる処理を行います
: