Taskkill.exe: işlem çalışmıyorsa hata atma


33

Derleme sonrasında hala çalışıyorsa, IIS'yi kapatan bir Visual Studio post build olayı çalıştırıyorum:

taskkill /f /im w3wp.exe

IIS hala çalışıyorsa, aşağıdakiler mükemmel çalışır, ancak daha önce durduysa bir hata atar:

Error 1 The process "w3wp.exe" not found. xxx\EXEC

Bu, uygun bir çalışan işlem bulamıyorsa, taskkill'e sorunu yoksaymasını söylemenin bir yolu var mı?

Yanıtlar:


29

Bir komut çalıştırmak yerine, küçük bir toplu iş dosyasını çalıştırmak yerine işe yarar mı?

tasklist /FI "IMAGENAME eq w3wp.exe" 2>NUL | find /I /N "w3wp.exe">NUL
if "%ERRORLEVEL%"=="0" taskkill /f /im w3wp.exe

22

Buna bulduğum çözüm kaçmaktı

START /wait taskkill /f /im w3wp.exe

BAŞLAT komutundan bir başarı döndürür ve TASKKILL'in attığı herhangi bir hata yeni konsol penceresinde atılır


5
ve toplu iş dosyasına devam etmeden önce görevlerin öldürülmesini beklemek istiyorsanız. basitçe ekleyin:START /wait taskkill /f /im w3wp.exe
jezternz

1
Beklemek çok önemli bir detay. Bu karışıklığı önlemek için orijinal cevabı düzenleyeceğim. Teşekkürler @jezternz!
Dustin Gamester

15

Bu da iyi çalışıyor:

taskkill /IM "w3wp.exe" /F /FI "STATUS eq RUNNING"

Bunu işe alamadım - benim görevim sürümüm "STATUS eq RUNNING" u tanımıyor gibi görünüyor. Ancak, "MEMUSAGE> 2" çalışıyor.
Polyfun

"STATUS eq UNKNOWN"
öğesinin

10

Veya, bulunmazsa bu sadece bir bilgi mesajı döndürür:

taskkill /f /im w3wp.exe /fi "memusage gt 2"

Bilgi: burada


3

Bu tek satırlık bir çözümdür .

Taskkill komutunu çalıştırır, ancak işlem gerçekten çalışıyorsa, aksi takdirde çalıştırılmadığını bildirir.

tasklist | find /i "w3wp.exe" && taskkill /im w3wp.exe /F || echo process "w3wp.exe" not running.

Sürecin çalışması durumunda çıktı budur:

w3wp.exe           1960 Services                   0    112,260 K
SUCCESS: The process "w3wp.exe" with PID 1960 has been terminated.

Çalışmıyor durumda çıktı budur:

process "w3wp.exe" not running.

0

Süreci öldürmeye zorlar (işlem çalışıyorsa) ve hiçbir bilgi vermeyin.

Aşağıdaki komut iyi çalışıyor.

taskkill /f /im w3wp.exe /t /fi "status eq running">nul


Bu nasıl w3wp.exe öldürür?
Jason Aller
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.