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


13

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

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

これは、VS2008およびその他のプログラムで発生する場合があります。

終了する方法は?


それがLinuxに切り替えた理由の1つです。私はWin XPでこの問題を経験しましたが、それ以降変わらないようです。
ペテルソーン

4
samba.2283325.n4.nabble.com/…によると、Linuxでもまったく同じ状況があります。カーネルで待機しているプロセスは殺せません。これは私がWindowsに切り替えた理由の1つです。
ta.speot.is

Mark Russinovichの記事「Unkillable Processes」は、ローカルカーネルデバッグツールを使用して、プロセスが殺せない理由を見つけることができると述べています。この記事では、何をすべきかについて説明します。Windows用のフリーウェアデバッグツールが必要です。
unforgettableidSupportsMonica

回答:


12

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

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

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

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


2
うん、それは確かにこの種のことの最も一般的な原因です。私が見た殺せないプロセスのほとんどは、CDドライブ(例EAC.EXE)またはTVチューナー/ビデオカード(例ATIMMC.EXE)に関連していました。どちらの場合も、それはドライバーの過失に帰着し、ドライバーの仕事を学んだ人は、そのレベルで問題のあるものがどのようになり、ユーザーランドでどのように見える「奇妙な」効果があるのか​​を知っています(少なくともBSODは決定的かつ明確)。
Synetech

1
@シネテック株式会社 -私が抱えていたすべての問題は、ディスクに関連していたか、ドライバーをまったく必要としないソフトウェアにありました(カーネルで実行する必要があると判断した理由はわかりません)。どんな種類のソフトウェアが殺すことができないクラッシュを最も頻繁に持っているかについての包括的な声明を出すことはできないと思います。
偽の名前

3

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

ほとんどの試行で失敗する

完全な説明

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


2
ターミネーターはProcess Hackerから削除され、プラグインに移動しました。それに関するフォーラムのスレッドがありました。メンテナーは、「ターミネーターは役に立たない...それは通常の終了機能よりも効果的ではないからです。」一部の人々は答え、反対した。
unforgettableidSupportsMonica

後に、dmexはTerminatorをプラグインに移行しました。ソースコードはこちらです。この記事の執筆時点では、まだバイナリはありません。バイナリがリリースされると、dmexリリースページに公開されます
unforgettableidSupportsMonica

1
ターミネーターのコンパイル済みバージョンを要求する機能要求をちょうど今提出しました。今のところ、2.39より古いバージョンのProcess Hackerを使用できると思います。たとえば、ここで入手可能なバージョン2.38を使用できます
unforgettableidSupportsMonica

また、デバッガーが接続されたオプションもあり、強制終了しない理由はそれです。デタッチデバッガを追加し、その他の検出
ギタ

2

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

これは、特にポップアップダイアログや何らかの形で非表示になっているものがあるプログラムで発生することがあります。ダイアログを閉じる方法を見つけると、スレッドを終了できるため、プロセスを終了できます。

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


0

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

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


0

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

taskkill / F yourprogram.exe

または

taskkill / F / im yourprogram.exe

CMD taskkill構文に固執している場合は、taskkill /?と入力します。


1
スーパーユーザーへようこそ!これは問題の解決に役立つ可能性がありますが、問題を解決する理由や方法を説明していません。この追加のコンテキストを提供すると、長期的な教育的価値が大幅に向上します。回答を編集して、パラメーターの機能や適用される制限や仮定などの説明を追加してください。ありがとう。
fixer1234

エラー:PID 16872のプロセス「AutoHotkeyU64_UIA.exe」を終了できませんでした。理由:タスクの実行中のインスタンスはありません。
Shayan
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.