web-dev-qa-db-ja.com

Taskkill / fはプロセスを強制終了しません

デバッグのためにVSからVSの実験用インスタンスを起動し、デバッグを停止すると(親VSから直接起動する場合)、ゾンビのdevenv.exeプロセスが実行されたままになり、強制終了できません。それは私のdllの多くに当てはまります。

私は管理者としてこの64ビットWin7マシンにログオンしているので、私は私が望むすべてのプロセスを終了させることができると期待するでしょう。

I tried (from Administrator command Prompt):

End Task from Task Manager.
TASKKILL /F /IM devenv.exe
PSKILL devenv.exe

どれもエラーを返さず、TASKKILLPSKILLはプロセスの終了/強制終了の成功メッセージを返しました。しかし、devenv.exeはまだ実行され、PIDは定数のままであるため再生成されません。それは素晴らしい解決策ではない、システムの再起動時に消えます。

注意。 LockHunterは、devenvが自分自身をロックしていることを示しています。そしてそれはそれを解除することはできません。

Process Monitor shows devenv to be in some kind of 'Process Profiling' loop

上のスクリーンショットは、devenvが何らかの「プロセスプロファイリング」ループに入っていることを示すプロセスモニタの出力です(正しく表示するには、右クリックして新しいタブで画像を開くをクリックします)。

どのようにWindows上のそのようなプロセスを殺すために任意のアイデア?

116
dushyantp

プロセスを正常に終了するために生成されたものがある場合は、子プロセスも終了する必要があります。

taskkill /IM "process_name" /T /F

/T = kills child process

/F = forceful termination of your process
69
aaa

Windows Server 2008 R2で同じ問題が発生しただけで、何の問題もなく、taskmanagerやtaskkillも問題ありませんでした。しかし、Windows PowerShellは管理者が "kill -id pid"で作業したように動作します。

26
Gnampf

再起動は私にとって有効な唯一の解決策です(これまで)。

これまでにない優れたMark Russonovichは、殺すことができないプロセスについての良い説明を持っています。

まとめると、未処理のI/O要求が適切に処理されていないために(プログラムがアクセスした可能性があるデバイスドライバによって)可能性があります。

http://blogs.technet.com/b/markrussinovich/archive/2005/08/17/unkillable-processes.aspx

23
Francis

Taskkillおよびpowershell(kill)メソッドは私にとってはうまくいきませんでした。それはまだ「アクセスが拒否されました」と言いました。

私はこれで運が良かった:

wmic process where "name='myprocessname.exe'" delete
21
twasbrillig

私はそれが遅れていることを知っていますが、taskkill /im devenv.exe /t /fはうまくいくはずです。 /tは子プロセスも殺します。

9
nephi12

私の場合、この問題との戦いの数日後(VirtualBoxとμTorrentのプロセスに起こっていました)、私はそれがWindows Updateパッチによって引き起こされたネットワークドライバの問題によるものであることを発見しました KB4338818 (Windows 7 x 64)そのパッチをアンインストールした後、すべてが正常に戻りました。私はちょうどそれが他の人に役立つかもしれないと思った。

5
Danita

私はこれを数回見ました、そして、私の唯一の解決策は再起動でした。

あなたはPowerShellを使ってみることができます。殺します

しかし、他の方法が失敗した場合、これもおそらくそうでしょう。 :-(

5
Thomas Lee

この問題を解決するために、Explorer.exeを強制終了することで解決しました。これは、プロセスがロックされている可能性があるフックを介してインターフェイスを開く場合にも発生する可能性があります。

5
seansilver

ネイティブのtskill <pid>(またはtskill.exe <pid>)は、他のネイティブの答えがなかったWindows 10で私のために働きました。

私の場合、タスクマネージャの「タスクの終了」が機能しているchrome.exeプロセスがいくつかありましたが、taskkill /F /T /PID <pid>もpowershellのkill -id <pid>も機能しませんでした(両方のシェルが管理者として実行されている場合でも)。

taskkilltskillのより良いapi-and-do-moreバージョンであると主張されているので、これは非常に奇妙です。

私の場合は、FOR /F "usebackq tokens=2 skip=2" %i IN (`TASKLIST /FI "IMAGENAME eq name_of_task.exe"`) DO tskill %iを使った特定のタスクのすべてのインスタンスを強制終了します。

3
Zig

私は最近同じ問題に直面し、答えの中であらゆる可能なことを試したが何もうまくいかなかったので、ここで何かを提案するつもりです。私はのようなエラーを得ていました

エラー:PID 23908のプロセスを終了できませんでした。理由:タスクの実行中のインスタンスがありません。

コマンドプロンプトを使用します。 Power Shellも役に立ちませんでした。それは単にコマンドを実行するだけで、プロセスはまだ実行されているのに応答しません。

関連付けられている「.exe」ファイルを削除することにしたまで。ファイルがアクティブだったので、ウィンドウは削除を許可しませんでした、しかしその警告ウィンドウでそれは私が殺したいタスクを遅らせていたプロセスの名前を私に与えました。私はオリジナルのタスク、そしてそれ故にバグの多いプロセスを殺すことができました。

解決策がどれもうまくいかない場合は、ぜひ試してみる価値があります。

2
Astroynamicist

いくつかのExeファイルはいくつかのサービスに依存しています、

それで、あなたはそれぞれのサービスを見つけて、最初にやめる必要があります。

2
girish

私はtaskkillで以下の結果を得ていました

>taskkill /im "MyApp.exe" /t /f
ERROR: The process with PID 32040 (child process of PID 54176) could not be terminated.
Reason: There is no running instance of the task.

>taskkill /pid 54176  /t /f
ERROR: The process "54176" not found.

私にとってうまくいったのは sysinternalのpskillです。

>pskill.exe -t 32040

PsKill v1.15 - Terminates processes on local or remote systems
Copyright (C) 1999-2012  Mark Russinovich
Sysinternals - www.sysinternals.com

Process 32040 killed.

pskillsysinternalのライブサイト から入手できます。

2
Phillip Ngan

VirtualBoxでも、Javaプロセスに関して同じ問題が起こりました。

私の場合は、Windows UpdateパッチKB4338818(Windows 7 x 64)のバグによるものです。

私は次のようにしてそれを解決しました:

  • アンインストールWindows UpdateパッチKB4338818
  • Windows UpdateパッチKB4338821をインストールする
2
Philippe GRANET

私は高められた権限で次のことをしました:

PS C:\Windows\system32> wmic.exe /interactive:off process where "name like `'Java%'`" call terminate

コマンド出力:

Executing (\\SRV\ROOT\CIMV2:Win32_Process.Handle="3064")->terminate()
Method execution successful.

出力パラメータ:

instance of __PARAMETERS
{ReturnValue = 0; };

私はいくつかの構文情報を得ました: https://community.spiceworks.com/topic/871561-wmic-error-like-invalid-alias-verb

2
Lakoroll

Code :: Blocksでgdbを使ったデバッグしたプロセスに問題があります。ソースやシステム関数を持たないlibのように、誤ってソースの範囲外の命令に踏み込んでいる間にハングアップしてしまうと、Code :: BlocksからもTask-Managerからもデバッグを終了できません。

Code :: Blocksでのgdbの実装ではエラーだと思いますが、gdbでも構いません。)

私の解決策:

taskkill /F /IM process.exe /T

これは親プロセスのPIDを表示します。今親を殺す:

taskkill /PID yyyy

両方ともなくなりました。

完了しました。

1
kolp

私にとって、それが働いた方法は私が親プロセスを殺さなければならないということです。親プロセスを把握し、それを殺します

taskkill /IM "parent_process_name.exe" /T /F
1
Shahazan

あなたが無料のSysinternals Suiteをダウンロードするならば、それはこれらのタイプのタスクに適しているpskill.exeアプリケーションを持っています。

1
BenV136

taskkill /F /T /PID <pid>が機能しない場合Run as Administratorで端末を開いてみてください。

ウィンドウズメニューでcmdを検索し、Run as Administratorを右クリックしてから、コマンドを再実行してください。これは私のために働きました。

1
Kevin Li

Francis のように、一部のプロセスは次の理由で終了できません

「未処理のI/O要求」

私の経験では、バグのあるものを扱っていましたグラフィックドライバー最後の手段idisabledグラフィックドライバーとプロセスはついになくなりました。

アプリケーションがresource fromdriverを待っている場合、wifiやグラフィックを試してみてくださいdisablingそれらをデバイスマネージャ、ハングした場所を確認するには、少し深く掘り下げる必要があります。

もちろんこれはお勧めしませんが、時にはもう失うものがない場合があります。

0
Masoud R

私は同じ問題を抱えていました、そして、他の多くの人がここでは通常のKillコマンドのどれも働かなかったと言いました。私の問題ファイルは、リモートデスクトップサーバー上のユーザーによってネットワーク共有から実行されていた実行可能ファイルでした。複数の共有ユーザーがいる場合、就業日に簡単に再起動することはできません。ユーザーがexeをログオフしたときでも、タスクマネージャにまだ表示されていました。フォルダが共有されているサーバーに送信し、[コンピュータの管理] - > [セッション]から、ログオフしたにもかかわらず、そのRDPサーバーからまだセッションが開いているユーザーを見つけました。右クリック - >セッションを閉じるとファイルのロックが解除されました。

私がタックを終わらせることができなかった理由私を打ってください。ファイルを削除しようとしたときに最初に表示されていたエラーメッセージは、「ファイルがシステムで開かれているため、処理を完了できません」でした。

これが他の人に役立つことを願っています。

0
David Pollard

私は、ポート3000でノードアプリを起動したところ、正しく閉じられず、再起動後もプロセスが実行され続けるという同じ問題に直面しました。

管理者モードで実行されているtaskkillまたはpowershellコマンドはどれも私にとっては役に立ちませんでした。

私はMS Process Expoler>プロパティ>画像>現在のディレクトリ(私のプロジェクトディレクトリになるはずだった)を使いました。

最後に、SafeModeで再起動し、プロジェクトフォルダの名前を変更して再起動する必要がありました。ポート3000を消費していたNodeプロセスはそれ自身を殺しました。

0
Aaman

まったく同じ問題があり、別のサイトでこの修正を見つけました:powershell.exe "Get-Process processname | Stop-Process"それは私にとってはうまくいったし、私は再起動しなければならなかったのと同じボートにいました。 。

0
Jeremy

管理者として実行すると私のために働く:

1.Windowsでcmdを検索

2. cmdを右クリックし、「管理者として実行」を選択します

3 .netstat -ano | findstr :8080

4 .taskkill/pid (your number) /F

My result

0
Qing Yuan

私は同じ問題を抱えていたので、cmdを "Run as administrator"として実行してみてください。

0
Muhammad Usman

管理者としてCMDを実行すると問題が解決します

0

NirSoftの NirCmd が私の仕事をしてくれました。

nircmd killprocess "process name.exe"

killprocessのmanページはここ です

0
Saxtus