web-dev-qa-db-ja.com

「インスタンスがない」タスクを強制終了する方法は?

Spotifyは最初に自分自身を殺しましたが、「何か」はPID 8664のタスクとして検出可能であり、RAM使用法が時々変化し続けたという事実から判断すると、「何かをしました」 。

さて、まず最初に、このプロセスが原因で音楽が聞こえなくなりました。このインスタンスがハングしているため、Spotifyが再起動を拒否したためです。

だから私はこのプロセスを取り除こうとしました。しかし、タスクマネージャーもtaskkillコマンドも(もちろん管理者として)成功しませんでした。

taskkillは少なくとも私にここで翻訳する「理由」を与えました。

>taskkill /pid 8664 /f
>taskkill /im spotify.exe /f

両方が与えた:

ERROR: The process "spotify.exe" with PID 8664 could not be terminated.
Reason: There is currently no instance executed by this task.

それが何を意味するのか、そのようなプロセスを終了する方法の別のオプションがあるかどうかを知りたいです。

(Windows 7 Pro 64ビット)

19
Raffael

プロセスはほぼ確実にすでに死んでいます。つまり、プロセスはもはやコードを実行していません。しかし、それに関するすべてのハンドルとそのスレッドのそれぞれが閉じられるまで、それに関する簿記は消えません。そのようなハンドルを開いたままにしている別のプログラム(ウイルス対策プログラムが原因である可能性があります)が存在するか、カーネルモードドライバーが停止する前に、ハングしている(以前はこれを引き起こしたCDドライブがあったため、ロット)。さらに読む: 「なぜ一部のプロセスが強制終了された後もタスクマネージャーに留まっているのですか?」 および 「なぜこれらすべてのプロセスが死の近くに残っているのか、そして何がそれらを存続させているのか? "

Spotifyは、自身のコピーがすでに実行されているのを確認するため、再度起動を拒否しますが、spotifyと呼ばれる別のプロセスを探すだけです。 (シングルインスタンスアプリケーションは、Raymond Chenの言葉では、独自のサービス拒否です。)これを修正する最も簡単な方法は、コンピューターを再起動することです。これにより、すべてのハンドルとブックキーピングが消去されます。

しかし、あなたが本当に自分で修正したい場合TM、ダウンロード Process Explorer 、Sysinternalsからの非常に便利な無料のユーティリティ。 (所属はありません。)実行し、インストールは必要ありません。EULAに同意します。 「ファイル」で、すべてのプロセスの詳細を表示を選択します。これにより、Process Explorerが管理者として再起動します。次に、[検索]でFind Handle or DLLを選択します。ゾンビ(まあ、死体)プロセスの名前を入力し、[検索]を押します。

searching for handles

Process列とPID列は、ハンドルを所有しているプロセスを示します。 Type列は、それがどのようなものかを示します。タイプProcessまたはThreadのタイプに関心があります。 [名前]列は、ハンドルの目的を示します。 (多くのプロセスが自身のハンドルを所有しています。所有しているアプリケーションがカーネルモードで問題なく終了すると、これらのプロセスはなくなります。)

Danger:アプリケーションが本当に必要とするハンドルを閉じることは、それをクラッシュさせる優れた方法です。可能であれば、ハンドルを所有するアプリケーションを終了します。しかし、それができない場合、またはハンマーで物をたたくように感じる場合...

その検索ウィンドウのエントリをクリックして、ハンドルペインを開きます。そのペインで新しく強調表示されたエントリを右クリックし、Close Handleを選択して、存在を削除します。

すべてのハンドルが閉じられると、プロセスは消えます。

12
Ben N