убить окна процессов с помощью taskkill

У меня есть java-скрипт, который работает и убивает некоторые процессы в соответствии с pid. Я запускаю оболочку с помощью команды «taskkill/F/pid», добавляя pid процесса. У меня проблема, что иногда эти процессы не убиваются. вообще я снова запускаю скрипт.

1) Как мне узнать, почему он не убивается?
2) * Знаете ли вы более сильную программу (чем taskkill) для того, чтобы убить процесс???

10X


person Boris Raznikov    schedule 23.01.2012    source источник
comment
Так это работает иногда, но не другие?   -  person Bali C    schedule 23.01.2012
comment
Попробуйте поставить паузу в сценарии, чтобы вы могли увидеть, какая ошибка произошла, возможно, в файле все еще есть дескриптор, который нужно сначала закрыть.   -  person Bali C    schedule 23.01.2012
comment
Я думал, что это было наоборот. Попытка удалить ресурс, который используется другим процессом, не разрешена   -  person Boris Raznikov    schedule 23.01.2012
comment
Я не уверен, что ты имеешь в виду. Я имел в виду, что в вашем сценарии у вас есть что-то вроде taskkill /f /pid, тогда вы можете поставить pause, чтобы увидеть, используется ли процесс или ошибка отказа в доступе.   -  person Bali C    schedule 23.01.2012
comment
ха, хорошо. Но как я могу увидеть, используется ли процесс или ошибка отказа в доступе? по возвращаемому значению из запуска оболочки?   -  person Boris Raznikov    schedule 23.01.2012
comment
Если окно cmd приостанавливается после выполнения taskkill (при условии, что вы используете pause, вы можете получить сообщение об ошибке, отображаемое в окне cmd, подобное этому ERROR: The process "System Idle Process" with PID 0 could not be terminated. Reason: This is critical system process. Taskkill cannot end this process.   -  person Bali C    schedule 23.01.2012


Ответы (1)


Существует очень полезный инструмент под названием wmic, который предоставляет мощные механизмы завершения процесса.

wmic process where "ProcessId=1234" CALL Terminate , 1234 - это pid процесса, который вы хотите убить

дополнительные сведения об использовании wmic см. в разделе wmic.

person rukaelin    schedule 17.02.2017
comment
Если taskkill /f этого не сделает, то и WMI этого не сделает. Процесс, вероятно, зависает, потому что он все еще держит какой-то дескриптор, который еще не может быть закрыт. - person Joey; 17.02.2017