Когда я использую команду taskkill /pid 1234 /t /f
, я получаю вывод
SUCCESS: The process with PID 1234 (child of process of PID 1123) has been terminated.
Но когда я использую tasklist | find "process.exe"
, он все равно появляется. Он также отображается в Resource Monitor со статусом «Приостановлено». Если я снова выполню команду taskkill, она выдаст мне
ERROR: The process with PID (child process of PID) could not be terminated.
Reason: Access is denied
и когда я пытаюсь убить процесс в Resource Monitor, я получаю ту же ошибку
When attempting to execute the command, the following system error occurred:
Access is denied.
Я полагаю, что это потому, что (поправьте меня, если я ошибаюсь), чтобы процесс с PID 1234 был убит, он убивает все дочерние процессы, потому что я использовал флаг / t и освобождаю память, которой он был ранее используя в то время как это делает это. Если я дам ему 40 секунд - 5 минут после запуска taskkill, процесс в конечном итоге будет остановлен.
До обновления до Windows 10 я использовал Windows 7 и никогда не сталкивался с этой проблемой. Когда я использовал бы taskkill, чтобы убить сбежавший процесс, он немедленно убил бы этот процесс. Есть ли способ получить те же результаты на Windows 10? Необходимость справиться с этим путем перезагрузки компьютера или ожидания 40 с-5 мин, в зависимости от количества потоков, нецелесообразна.