Служба, що застрягла на Stopping...
Оснастка показує Stopping і не рухається. Звична відповідь - Диспетчер завдань, здогад, у якому svchost.exe вона живе, і «Завершити завдання», що завершує й кожну іншу службу в цьому процесі, не кажучи вам, які саме.
Чому так буває
- Служба не відповідає на запит зупинки. Windows просить її чемно й чекає. Служба, що зависла або чекає на щось, що не повернеться, ніколи не відповідає.
- Щось, що залежить від неї, ще працює. Диспетчер відмовляє в зупинці, а не ламає іншу службу, і оснастка показує це як очікування.
- Вона ділить процес з іншими. Більшість служб Windows живуть усередині спільного
svchost.exe. Завершення цього процесу завершує їх усі, а саме це й робить Диспетчер завдань, не називаючи їх.
Подивіться, перш ніж щось завершувати
Спитайте, що забере з собою завершення. Нічого не станеться, доки ви не приберете --dry-run.
$ bws kill Spooler --dry-run
Попередній перегляд називає процес за номером, називає кожну іншу службу, що живе в ньому, і показує два кроки, а не один: попросити службу зупинитися і, лише якщо це не спрацювало, завершити процес. Служба, що зупиняється сама, ніколи не завершується примусово.
--forceпропускає чемний крок і завершує процес одразу. Він змінює план, а не його виконання, тож попередній перегляд показує один крок замість двох, і різницю видно до того, як щось станеться.--restartповертає все назад, коли процесу вже немає, - запис, про який ви питали, і все, що ділило з ним процес. Без нього машина лишається з цими зупиненими службами, а звіт каже, як їх запустити знову.
- Відмова приходить раніше за кнопку. Драйвер, процес, який система захищає, служба, зупинку якої диспетчер не приймає, - відмова під час побудови плану, з причиною, а не після шістдесяти секунд очікування.
- Попередження, коли це важливо. Якщо запис належить до тих, без яких машина не працює, план про це каже: його зупинка зупиняє машину, а не лише службу.
Завершення процесу - єдине, що робить цей інструмент і від чого ніхто не може відмовити за машину. Саме тому це окрема команда, саме тому попередній перегляд називає кожну службу, яку вона забирає з собою, і саме тому чемний крок іде першим, якщо ви не скажете іншого.
Безпечніший порядок
- Подивіться, що це таке.
bws show Spooler- процес, що від неї залежить, від чого залежить вона і чи приймає вона запити зупинки взагалі. - Спробуйте звичайну зупинку, як план.
bws stop Spooler --dry-run --dependents. Якщо відповідь - відмова, вона каже, яка саме з трьох причин. - Якщо вона не зупиняється, подивіться, чого коштує її завершення.
bws kill Spooler --dry-runі прочитайте список служб, що ділять цей процес. - Тоді зробіть це, зі шляхом назад.
bws kill Spooler --restart. Звіт закінчується тим, що не спрацювало, і командами, які повертають усе на місце.
Усі чотири працюють так само у вікні: клацніть рядок правою кнопкою, виберіть Force stop..., прочитайте план, а кнопка під ним названа за тим, що вона зробить.
Чому б просто не скористатися Диспетчером завдань
Бо він відповідає на інше запитання. Диспетчер завдань знає про процеси, а ця проблема про служби, і вони не збігаються один до одного.
Спільний svchost.exe може тримати десяток служб. Диспетчер завдань завершить його, не сказавши, які саме дванадцять, жодна з них не повернеться сама, і ніщо потім не скаже вам, що зупинилося. EDR, який позначає процес, що завершує svchost.exe, робить свою роботу, і він не відрізнить ваше клацання від чогось іншого.