Назад | Перейти на главную страницу

Завершите работу операционной системы, убив задачу

Недавно я столкнулся с довольно странной ошибкой, и мне было интересно, знает ли кто-нибудь об этом. Я не могу найти никакой ссылки на такой сценарий в Google, так что вот ...

Примерная последовательность событий такова:

  1. RDP в Windows 2008 R2 и начать работу в SQL Management Studio
  2. Попробуйте выйти, не закрывая сначала SSMS
  3. Экран гаснет и выдает сообщение "Фоновые задачи ожидают закрытия"
  4. Я предполагал, что SSMS будет спрашивать меня, хочу ли я сохранить свой SQL-скрипт, но мне не удалось вернуться к задаче.
  5. Панель задач все еще можно было использовать, поэтому я щелкнул правой кнопкой мыши и открыл диспетчер задач, перешел к списку процессов и попытался завершить ssms.exe.
  6. Он предупредил меня, что, завершив эту задачу, операционная система отключится, и я могу потерять данные. Кнопка для выполнения действия была неактивна, пока я не поставил галочку в поле, подтверждающем возможную потерю данных.
  7. Поэтому я поставил галочку и нажал кнопку принятия. Верный своему слову, вскоре после этого я потерял свое RDP-соединение, и мне пришлось ждать, пока кто-нибудь на удаленном конце перезапустит виртуальную машину.
  8. Когда ОС снова подключилась к сети, она сообщила, что произошла ошибка синего экрана.

К сожалению при этом не подумал сделать скриншот, поэтому иду по памяти. Но я был удивлен - я как бы думал, что в наши дни с изоляцией процессов и прочими вещами один пользовательский процесс не может взорвать всю ОС - скорее, системный процесс низкого уровня, такой как драйвер. И я точно никогда раньше не видел такой функциональности в диспетчере задач.

Итак ... кто-нибудь сталкивался с этим раньше? Есть ли какая-нибудь документация Microsoft, которая объяснит, с чем я столкнулся?

РЕДАКТИРОВАТЬ - чтобы прояснить симптомы, после завершения процесса SMSS он вызывает синий экран, затем система перезагружается (ручное вмешательство не требуется). А вот текст сообщения диспетчера задач на тот случай, если кто-то в будущем будет искать это в Google: «Завершение этого процесса немедленно завершит работу операционной системы. Вы потеряете все несохраненные данные. Вы уверены, что хотите продолжить? И флажок гласит: «Отказаться от несохраненных данных и завершить работу».

smss.exe является важным системным процессом в Windows (это диспетчер сеансов Windows), и он никак не связан с SQL Studio. Если вы его убьете (и то же самое касается других системных процессов, например winlogon.exe или служба регистрации событий), система может вызвать перезагрузку (в последний раз я видел это в XP, это было с окном обратного отсчета, созданным API InitiateSystemShutdown, как показано на веб-странице, упомянутой ниже, но я также видел он моментально перезагружается с синим экраном).

Собственно, убийство smss.exe вместе, похоже, не вызывает синий экран или перезагрузку (по крайней мере, на виртуальной машине WinXP, где я пробовал), однако его отключение может вызвать серьезные побочные эффекты. В Windows 7, если вы попытаетесь убить smss.exe В процессе работы с диспетчером задач автоматически запускается завершение работы системы, как указано в диалоговом окне, отображаемом диспетчером задач.

Некоторые подробности об убийстве SMSS и других системных процессов здесь: http://blogs.technet.com/b/markrussinovich/archive/2005/07/24/running-windows-with-no-services.aspx