[Subject Prev][Subject Next][Thread Prev][Thread Next][Subject Index][Thread Index]

[linux-users:101108] Re: 割り込み付加プロセス


高橋 直樹@永和システムマネジメントといいます。

状況から察するに、ユーザープログラムがシステムコールを実行して、
そのシステムコールの延長(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 プロセス番号
>とするのと同じです。
>
>

この情報があなたの探していたものかどうか選択してください。
yes/まさにこれだ!   no/違うなぁ   part/一部見つかった   try/これで試してみる

あなたが探していた情報はどのようなことか、ご自由に記入下さい。特に「まさにこれだ!」と言う場合は記入をお願いします。
例:「複数のマシンからCATV経由でipmasqueradeを利用してWebを参照したい場合の設定について」
Follow-Ups: References: