高橋 直樹@永和システムマネジメントといいます。 状況から察するに、ユーザープログラムがシステムコールを実行して、 そのシステムコールの延長(Linuxカーネルの中)で、 処理が止まっている(スリープしている)状態、あるいは、 ずっと処理を行っていてシステムコールが復帰していない状態だと思われます。 # 厳密にはシステムコールだけとは限りませんが、 # システムコールだとして話を進めます 谷口さんの状況がどのようになっているか分かりませんが、 kill -9 プロセスID を実行して、(時間はかかるけれども)その内、 終了するのであれば、それは、正常な動作ですが、 kill -9 プロセスIDを実行しても、いつまでたっても終了しないのであれば、 システムコールが復帰しないという異常な状況であり、 普通、このようなプロセスを終了させる方法はありません。 # rebootする以外に方法はないでしょう。 以下は、カーネルの中の話になりますが、 STAT Dの割り込み不可(付加->不可ですよね?)でスリープしている状況、 カーネル内で処理を実行している状況では、 そのプロセスは、シグナル自体は受け付けていますが、 割り込み不可なだけに、その時点でスリープ状態から、 起き上がってくることはありません。 # カーネル内でスリープしているのは、処理の待ち合わせをしたり、 # ハードウェアからの応答を待っている状況です。 受け付けたシグナルが、いつ有効になるかは、 システムコールの処理自体によりますが、 カーネル内のスリープ状態から復帰して、システムコールが終了した時点か、 カーネル内で”割り込み可能な状態で(STAT Sの場合)”スリープする時点です。 kill -9 プロセスIDを実行しても、いつまでたっても終了しない、 つまり、システムコールが復帰しない原因ですが、 ハードウェアの故障、バグが原因か、 insmodしているデバイスドライバ、モジュールを含めたカーネルのバグ等が 考えられますが、提示されている情報では、はっきりしたことは言えません。 根本的な解決にはなりませんが、何のシステムコールが復帰しないかを知りたければ、 strace -p プロセスID とすれば表示されます。 "K.Watanabe" <navkaz@xxxxxxxxxxxxx> wrote: >2003/10/30 (木) 03:03 に Norio Taniguchi さんは書きました: > >> こちらは root ユーザーで行わなければいけないということでしょうか。 >> hoge というユーザの割り込み付加プロセスがあるのですが、hoge ユーザーで、 >> >> kill -9 プロセス番号 >> >> としても終了させれませんでした。 > >どういう状況で、それが問題になっているのかわかりませんが、 >あなたが管理者で、そのホストや周囲に悪影響を与えないと判断できるなら、 >rootでやってもいいでしょう。 >(と、言うことのほどでもなさそうですが) > >ちなみに -9 というのはシグナル番号で、 >#kill -l >として出てくるリストの番号です。 > >#kill -SIGKILL プロセス番号 >とするのと同じです。 > >
Follow-Ups:
- [linux-users:101109] Re: 割り込み付加プロセスNorio Taniguchi
- [linux-users:101086] Re: 割り込み付加プロセスK.Watanabe
- Prev by Subject: [linux-users:101107] Re: vanilla linux
- Next by Subject: [linux-users:101109] Re: 割り込み付加プロセス
- Previous by thread: [linux-users:101086] Re: 割り込み付加プロセス
- Next by thread: [linux-users:101109] Re: 割り込み付加プロセス
- Indexes:[Main][Thread]