-PR-
解決済み

無限ループをkill

  • 困ってます
  • 質問No.8279
  • 閲覧数1321
  • ありがとう数7
  • 気になる数0
  • 回答数5
  • コメント数0

お礼率 0% (0/35)

無限ループが実行された時、サーバー上で、自動的にkillするには、どういう設定をしたらよいでしょうか。
通報する
  • 回答数5
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

質問者が選んだベストアンサー

  • 回答No.5

アドバイザー 詳しい分野:いろいろ

レベル14

ベストアンサー率 37% (668/1777)

次に、sokuさんが、そのサーバーの管理者(root)であるとして説明します。

通常でしたら、ps の出力で、無限ループしているかというのは
CPU実行時間等で確認できるのですが、
それ以外のも、uptime コマンドの数字で知ることができます。

uptimeコマンドで出力される Load avagage が、ある一定以上のあたいになるということは
大概、何かのスクリプトが暴走しているという可能性が大きいです。

そこで、Load avagage が一定の数字を超えているのを確認できれば
Apache 自体を再起動してしまえば、安全に暴走プロセスを
停止させることができます。

その他の回答 (全4件)

  • 回答No.1

私の知りうる限りでは、無理だと思いますよ。

無限ループということは、プロセスの実行時間を
管理して、ある一定時間以上プロセスが終了しない
時は、killコマンドを発行して、しかもdaemonの
ような常駐プロセスは一定時間が経過しても
終了させない。

それを判断するのはそうたやすいことではないので
あきらめてkillコマンドを手動で発行するのが一番
だと思います。
#自分が管理者でないのならば、管理者に連絡する
#のが早道でしょう。

ではでは☆


  • 回答No.2
レベル8

ベストアンサー率 25% (9/35)

無限ループの判断自体が難しいため、サーバで自動的に回収することは、できないと思います。
サーバ上で動作する専用の監視プロセスを作成すれば可能なのかもしれませんが・・・
 無限ループの定義を、Kanataさんの回答にあるように、一定時間内に処理が終了しない場合と定義します。そして、監視対象プロセスの中で、一定時間終了しないプロセスを、自作監視プロセスにより、Killシグナルで強制終了させるような感じですが、危険です。

ご質問の主旨と異なっていましたらごめんなさい。
  • 回答No.3

ちなみにCGIの実行はプロバイダやサーバ管理者に
よって、実行者の設定が異なります。

実行者が、CGI作成者(ようするにあなた)やrootの
場合はPerlプログラム側からでもkillコマンドが発行
出来ますが、nobodyでの実行の場合、root以外
killコマンドを発行してもプロセスを削除することが
出来ません。
#私は何度かnobody実行で管理者様にご迷惑を
#かけたことがあります。

ではでは☆
  • 回答No.4

アドバイザー 詳しい分野:いろいろ

レベル14

ベストアンサー率 37% (668/1777)

sokuさんが、そのサーバーの管理者でないとして説明します。

まず、現在CGIのスクリプトを作成中で、手動でkillする
場合においては次の方法でkill することができます。
(もちろん、nobody権限等で実効されてるとして・・)

BIGLOBE と CGIで遊ぼう!というページにいき
http://www2d.biglobe.ne.jp/~gama/cgi/index.cgi
telnet.cgi をダウンロードします。

このCGIを開き、
ps -ax もしくは、ps -e (OSによって異なります)を
実効し、自分が無限ループさせてしまったCGIであるか
探します。

そしたら、そのものを、kill します。
------------
もうひとつの方法は、ダミーCGIを用いて半自動的?killする方法です。
ページの下のほうに、<IMG SRC=ダミー.cgi height=2 width=2> と記述し
そのダミーCGIは、上記 ps ax もしくは ps -e で実行
し、そこから、自分が動かしているCGIであるものを
フィルタリングし、プロセス番号をkillする方法です。
この場合は、CGIの名前を「自分独特」のものにし
他人と区別つけられるようでなければなりません。

そうすると、そのダミーCGI自体は nobody 権限で動作し
かつ、無限ループされているのも nobody 権限で動作
しているので、kill できるというわけです。

詳しい方法がお知りになりたければ、ホソクを付けて下さい。
このQ&Aで解決しましたか?
AIエージェント「あい」

こんにちは。AIエージェントの「あい」です。
あなたの悩みに、OKWAVE 3,500万件のQ&Aを分析して最適な回答をご提案します。

関連するQ&A
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-

特集


抽選で合計100名様にプレゼント!

ピックアップ

ページ先頭へ