web-dev-qa-db-ja.com

どうすれば殺せないプロセスを殺すことができますか?

アプリケーションを閉じましたが、プロセスはリストに残っていました。タスクマネージャから立ち寄ろうとしましたが、何も起こりません。エラーメッセージはありません。プロセスはリストに残ります。私はそれをデバッグしようとしますが、デバッガーは言います:

クラッシュするプロセスにアタッチできません。要求された操作はサポートされていません。

これは、VS2008やその他のプログラムで発生することがあります。

それを終了する方法は?

12
skevar7

残念ながら、唯一の本当の手段は再起動することです。

私もこの問題を抱えており、クラッシュしたプロセスを正常に強制終了する方法を見つけることができませんでした。見つけたほぼすべてのpskill /同様のアプリを試しましたが、すべて失敗しました。

私が理解しているように、この問題の最も一般的な原因は、問題のあるプロセスがシステムドライバーをロードし、それを完了できないという要求を送信した場合です。クラッシュしたドライバがプロセスアドレス空間へのアクセスを必要とするIO待機状態にあるため、カーネルが閉じるときに、カーネルがプロセスからメモリを適切に割り当て解除できないようです。

(ほとんどの場合) http://blogs.technet.com/markrussinovich/archive/2005/08/17/unkillable-processes.aspx

11
Fake Name

Process Hacker には、プロセスを強制終了するためのさまざまなメソッドを試すためのMiscellaneous→Terminatorコマンドがあります。

failing on most attempts

full descriptions

私のテストでは、これはProcess Hackerをロックして、それを殺せないプロセスに変えることだけでしたが、場合によっては機能するかもしれません。

3
endolith

時々プロセスはリソースやスレッドなどでブロックされる可能性があり、それを終了または解放すると、プロセスが解放されて終了します。これは、使用中のファイルをExplorerで(ごみ箱に)削除した場合、実際には消えず、スタックしているように見えます(使用中/ロックされたエラーをすぐに返さずに)が、 5秒以内にロックされているプログラムを終了すると、ファイルが突然消えます。

私はこれが時々起こるのを見ました、特にポップアップダイアログまたは何らかの理由で隠される何かを持っているプログラムで。ダイアログを閉じる方法を見つけると、スレッドが終了し、プロセスが終了します。

マルチスレッドプログラミングのまだ比較的新しい慣行の増加に伴い、少なくともしばらくの間、このようなことがより一般的になると思います。

2
Synetech

管理者としてCMDを起動し、taskkillを使用して強制的にオフにします。例:

taskkill/F yourprogram.exe

OR

taskkill/F/im yourprogram.exe

CMD taskkill構文に行き詰まっている場合は、taskkill /?と入力します。

0
Ethan J.

使用しているプログラムは、Windows Vista/7より前に開発されたものであり、加えられた変更と互換性がない可能性があります。

最善の策は、この問題が発生しているプログラムの実行可能ファイルを見つけ、右クリックしてプロパティに移動し、互換性を選択して、最後に互換モードとしてWindows XP]を選択することです。

0
Daisetsu