人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

Webサーバーで何らかの動的ページを生成する仕組みを持つことを前提として、
動的ページを生成するスクリプト(CGIやPHPなど)が長時間にわたって動作し続けた場合に、
スクリプトの動作完了前に、ブラウザ上で別のページへ移動したりブラウザを落としたりすると、
そのスクリプトの処理は自動的に止まるのでしょうか。
スクリプト言語やWebサーバーの種類、およびそれらの設定に依存すると思われますが、
この疑問に対する情報を教えてください。

これはユーザーがブラウザから長時間かかるCGIなどを起動したはいいが、
「なんか時間かかるなぁ、や〜めた」と言って中止したりした場合に、
サーバー側のスクリプト処理を止めたいのです。

スクリプト内でブラウザとのTCPコネクション状態が判別できればいいのかなとも思うのですが。

●質問者: mshima
●カテゴリ:ウェブ制作
✍キーワード:CGI PHP TCP Web コネ
○ 状態 :終了
└ 回答数 : 4/4件

▽最新の回答へ

1 ● akimasa2000
●20ポイント

http://tohoho.wakusei.ne.jp/lng/r200005/00050039.htm

そのファイルは現在ありません

ApacheでPerlを走らせている場合は、SIGTERMで、検出できます。

◎質問者からの返答

すみません、確認させてください。

SIGTERMはWindows上でも使用可能ですか?

#どこかでUNIXしか使用できないと書かれていた記憶があります。

#当方、Windows上で実現させたいのです。


2 ● aki73ix
●15ポイント

http://tohoho.wakusei.ne.jp/lng/199911/99110249.htm

そのファイルは現在ありません

残念ながら止まりません

だから、連続でリロードしたりすると、プロセスがサーバの中で複数起動した状態になって、思いっきり負荷がかかったりすることがあります

Script内で判断するのは無理ですね

ただ、CGIを使う場合LOGにIPアドレスを記憶しておいて、前に起動したユーザと合致すれば ps/kill -9 等を使って強制的にプロセスを落とすようなCGIを作ることは可能です

http://www.iso-works.com/product/cgi_error.html

http://x68000.startshop.co.jp/~68user/unix/pickup?kill

◎質問者からの返答

ps/killですか・・・UNIXの世界ですね(笑)。

質問文に明確に書かなかった私が悪いのですが、

Windowsで実現できればと考えています。


3 ● aki73ix
●15ポイント

http://www.cmdtools.com/

www.cmdtools.com

なるほど Windowsですか

Windows用の PS/KILLもあります

上がWin9x用

下がNT系

リンク3みたいなものもあります

まぁ、自分でVC++でCGIプログラム作ってしまうのが一番手っ取り早いんですけどね^^;

http://www.loa.espci.fr/winnt.html

http://www.drd.dyndns.org/fr_index.html?/software.html

◎質問者からの返答

Windowsにもps/killが!

参考にします。


4 ● hokutoy
●50ポイント

http://www.microsoft.com/japan/msdn/library/default.asp?url=/jap...

このページは、存在しないか、削除されています。

Windows環境でIISを利用するのでしたら、ASP、ASP.NETでResponseオブジェクト(.NETの場合はHttpResponseオブジェクト)のIsClientConnectedプロパティでチェックできると思います。

http://www5a.biglobe.ne.jp/~n_rieko/asp/9.htm

◎質問者からの返答

なるほど、できそうな感じですね。

ありがとうございます。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ