Служба, застрявшая на 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, делает свою работу, и он не может отличить ваш щелчок от чего-либо другого.