![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
はじめまして、初心者の質問で恐縮ですが、以下の点を教えて欲しいです。
IIS7.0のWebサーバで、CGIプログラムをPerlで作っているのですが、forkした子プロセス
で時間のかかるバックグラウンド処理を行って、親プロセスでWebブラウザに返す処理を
しようとしていますがうまくいきません。重たい処理が終了するまでWebブラウザに応答
されません。(子プロセスの終了が終わるまで、親プロセスのHTML表示処理がWebブラ
ウザに返答されません)通常、子プロセスでclose(STDOUT)で親プロセスのHTMLの
表示処理が出来ると思っていますが。。。
どのようにすれば良いか教えてもらえると幸いです。以下は参考のプログラムです。
よろしくお願いします。
$|=0;
if ( $pid = fork){ #親プロセス
&disp_html(); #HTMLを表示させるプログラム
wait;
}elsif (defined $pid) { #子プロセス
close(STDIN);
close(STDOUT);
close(STDERR);
&heaby_prog(); #重たい時間のかかる処理
exit 0;
} else {
die "Can't fork: $\n";
}
よろしくお願いします。
No.2ベストアンサー
- 回答日時:
やっぱりwaitを外すのが手っ取りばやいように思えます。
それでだめなら、forkする前にstd*をクローズするとか。
回答ありがとうごいました。
ただ、waitをはずしたり、systemコマンド、別ファイルにPerlを
分けてバックグラウンドで実行したり、いろいろやってみましたが、
うまくいきませんでした。
IISでは、Perlで時間のかかる処理のバックグラウンドの実行で
やり方があれば教えて欲しいです。。。
ちょっと、Javascriptなどの方法を模索してみようかと思っています。
No.1
- 回答日時:
回答ありがとうございます。
wait;
は子プロセスの終了を親プロセスが待っていて、
このプログラム上は問題ないと思っています。
(実施したいことは出来ると思っています)
waitで待っていても、子プロセスでclose(STDOUT)
で、HTMLは出力できたと思っていましたが。。。。
意味が違ってたら、すみません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(学校・勉強) この中で間違ってある説明はありますか?詳しい方に教えていただきたいです。 A. 1つのプログラムが複 2 2023/07/14 01:15
- C言語・C++・C# プログラミングの問題です。至急教えてください。 /***から***/の部分をプログラミングにしてほし 1 2022/10/13 11:48
- 政治 私は文部科学省ヘ入り込んで投稿した私の建議文を彼らが私の依頼まましましょうか。? 2 2023/08/22 07:08
- フリーソフト AOMEI Backupper でバックアップが取れない 2 2022/07/17 22:28
- Visual Basic(VBA) バックグラウンドのプロセスのエクセルを閉じる方法 4 2022/05/12 15:39
- 日本株 SBI証券HYPER SBI 2のエラー 1 2023/01/31 13:38
- Windows 10 バッチファイルでのエクスプローラー終了 1 2022/05/30 14:32
- その他(コンピューター・テクノロジー) Texについてです。 jpgファイルを貼り付けても表示されないのですが、どうしたら表示できますか? 1 2022/06/30 23:42
- 情報処理技術者・Microsoft認定資格 応用情報処理技術者試験のシステム利用率の計算について 2 2022/03/28 07:43
- 医学 医学に詳しい方にお尋ね致します。 摂取した水分は最終的には尿になりますが、そのプロセスがよく分かりま 4 2023/01/16 14:57
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
arduino の割り込み処理について
-
フォームの太字を置き換える
-
ページングで「前の○件」の方法
-
初回起動のみ判別したい
-
空メール処理について
-
c言語のプログラミングの問題で...
-
VB6で、長い時間かかる処理...
-
Application.ScreenUpdating = ...
-
JSONで文字列が長い時
-
formで特定のinputを送信しない...
-
int(input("○○"))の使い方
-
<SELECT>タグの折り返し
-
実行時エラー 3020の対策
-
16進の10進変換について
-
PICで世界時計を作りたいのですが
-
プルダウンメニューで中央表示
-
文字の横にプルダウンを表示さ...
-
perl言語について
-
構造体の変数の値を、動的に取...
-
シェルスクリプトで、空白(ス...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VB6で、長い時間かかる処理...
-
実行中の変数の中身をイミディ...
-
C言語のflagの使い方が分かりま...
-
UWSC SLCTBOXもしくはSELECTに...
-
c言語のプログラミングの問題で...
-
処理終了後、他のページへジャ...
-
SetDlgItemInt( ) c++
-
問題作成のWebアプリの作り方を...
-
デ-タテ-ブルの内容での更新...
-
バッファリング処理を高速化し...
-
初回起動のみ判別したい
-
VBAのCallステートメントについて
-
arduino の割り込み処理について
-
perl:ループのカウンタ変数の値...
-
右詰表示
-
回数を指定しないで空白行まで...
-
プログラミング、VB.NET(初歩です)
-
C言語のプログラミング
-
WinAPIで文字の重ね書きはでき...
-
$postflag=1とか$flag=1とかっ...
おすすめ情報