Shutdown exe постоянно перезагружает компьютер. Создаем программу для автоматического выключения компьютера. Ярлык выключения компьютера

Большинство пользователей выключают компьютер классическим способом – через меню Пуск или стартовый экран Windows 8. Но, такой способ выключения компьютера удобен далеко не всегда. Иногда гораздо удобней выключить компьютер или с помощью ярлыка на рабочем столе. В данной статье мы расскажем о том, как это реализовать.

Выключение компьютера через командную строку производится с помощью команды shutdown. Команда shutdown может принимать такие параметры:

  • /s – Выключение компьютера;
  • /a – Отмена перезагрузки или выключения компьютера. Данный параметр можно использовать только во время ожидания выключения (выключения с задержкой);
  • /h – Переход в ;
  • /t xxx – Установка задержки в XXX секунд перед перезагрузкой или выключением компьютера. Позволяет ;
  • /c «комментарий» – Комментарий с указанием причины выключения или перезагрузки компьютера;
  • /f – Принудительное завершение всех открытых программ без предупреждения пользователя. Данный параметр используется, если для параметра /t указана задержка больше 0 секунд;
  • Другие параметры, которые можно использовать для выключения компьютера через командную строку вы сможете узнать, использовав команду shutdown без каких либо параметров;

Итак, для того чтобы произвести немедленное выключение компьютера через командную строку или так называемую консоль, необходимо ввести такую команду:

  • Shutdown /s /t 00

Если вы хотите выключить компьютер с задержкой, то вместо нулей необходимо указать задержку в секундах:

  • Shutdown /s /t 60

Если вы хотите перезагрузить компьютер, то вместо параметра /s используйте параметр /r:

  • Shutdown /r /t 00

Для перезагрузки с задержкой используем параметр /t c указанием количества секунд:

  • Shutdown /r /t 60

При перезагрузке или выключении компьютера с использование задержки, на экране появляется окно с предупреждением.

Если задержка очень длительная, например 60 минут (3600 секунд), то вместо предупреждающего окна появляется всплывающее сообщение в нижнем правом углу экрана.

Во время действия задержки выключение компьютера можно остановить. Для этого в командной строке нужно ввести команду:

  • Shutdown /a

Нужно отметить, что команду Shutdown можно использовать не только в командной строке, но и в ярлыках. Это позволяет создать ярлык для выключения компьютера. Такой ярлык можно оставить на рабочем столе или закрепить на стартовом экране Windows 8.

Для этого откройте контекстное меню (правая кнопка мышки) и используйте функцию «Создать ярлык».

В открывшемся окне команду для выключения или перезагрузки компьютера и нажмите на кнопку «Далее».

В результате вы получите ярлык, при открытии которого ваш компьютер выключится.

Выключение компьютера - действие, с которым обычные пользователи сталкиваются чуть ли не каждый день. Если выключать сервер приходится довольно редко, то обычные, десктопные компьютеры подвержены этой операции очень даже часто. Большинство пользователей выключают linux в графическом интерфейсе системы. В окружении рабочего стола KDE это делается через главное меню, а в Gnome и Unity даже есть специальная кнопка на панели для решения этой задачи.

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

Чтобы выключить компьютер Linux используется команда shutdown. Есть также команды poweroff, halt, но они для нестандартных случаев. Обычно же хватает одной только shutdown. Также выключить linux из консоли можно с помощью сочетаний клавиш SysRq. Но сначала давайте рассмотрим синтаксис команды shutdown.

Синтаксис команды очень простой:

$ shutdown [опции] [время] [сообщение]

Опции задают параметры отключения, их мы рассмотрим ниже. Время можно задавать в формате чч:мм в 24 часовом формате. Также можно использовать запись +минуты, указывающую через сколько минут от текущего момента нужно выключить компьютер linux. Также доступна константа now, указывающая, что выключать нужно прямо сейчас.

Параметр сообщение позволяет задать сообщение, которое будет выведено в терминал перед выключением.

Опции

  • --help - вывести справку по программе
  • -H, --halt - отключить питание, не завершая процессы и не перемонтируя файловые системы
  • -P, --poweroff - нормальное выключение
  • -k - не выполнять реальных действий, а только вывести сообщение
  • --no-wall - выключить компьютер, но не выводить сообщение
  • -c - отменить запланированное выключение linux из командной строки

Вот в принципе и все опции утилиты, их больше чем достаточно для такого простого действия. Теперь можно переходить к примерам, но сначала давайте рассмотрим, что же происходит во время включения Linux.

Процесс выключения Linux

Естественно, команда shutdown linux или любая другая не самостоятельно завершает работу системы и выключает компьютер. Она всего лишь передает запрос на выключение системе инициализации, а затем ядру. А уже они выполняют ряд сложных операций по подготовке и выключению компьютера. Если кратко, то вот они:

  • Завершение процессов пользователя
  • Сигнал SIGTERM всем процессам
  • Сигнал SIGKILL всем процессам
  • Монтирование файловых систем в режиме только для чтения
  • Подготовка внешних устройств к отключению
  • Блокировка пространства пользователя, чтобы гарантировать, что ни один код пользователя больше не будет запущен
  • Завершение работы и отключение питания большинства периферических устройств
  • Отключение питания компьютера

Теперь вы понимаете суть процесса выключения и то почему нельзя просто выдернуть шнур питания с розетки. Если это сделать, компьютер отключится моментально и не выполнит всех необходимых операций, а это может грозить потерей не сохраненных или даже недавно сохраненных данных, повреждением файловой системы и т д. Поэтому желательно выключать компьютер правильно с помощью shutdown или других специальных утилит.

А теперь перейдем к примерам.

Выключение компьютера в Linux

1. shutdown

Самая простая и самая часто используемая команда выключения компьютера linux, отключит компьютер немедленно:

sudo shutdown -h now

Как видите, используется обычное выключение, и константа времени now, тоесть сейчас.

Теперь попробуем запланировать выключение компьютера linux через пять минут:

sudo shutdown -h +5 "Компьютер будет выключен через 5 минут"

Мы запланировали вывод сообщения перед выключением.

Теперь давайте отменим выключение компьютера Linux:

sudo shutdown -c

Точно так же мы можем указать точное время выключения, например в девять вечера:

sudo shutdown -h 21:00

Как я уже говорил, не только команда shutdown linux умеет выключать компьютер, есть еще несколько утилит способных на это. Рассмотрим их тоже.

2. reboot

Команда reboot обычно используется для перезагрузки системы, но она также умеет выключать компьютер. Мы не будем ее подробно рассматривать, потому, что она еще проще команды shutdown. Для выключения нужно задать опцию -p:

3. halt

Эта команда тоже выключает компьютер. Только делает она это очень по-своему. Она не выполняет никаких подготовительных действий перед выключением, а просто отключает питание:

Использование halt может повредить систему

4. poweroff

Это аналог halt, делает в точности то же самое:

5. SysRq

Помните, в начале статьи, я говорил о сочетании клавиш для включения компьютера? Рассмотрим этот вопрос подробнее.

SysRq - это подсистема, реализованная на уровне ядра. Ядро обрабатывает все нажатия клавиш, а с помощью этой подсистемы, оно может принимать от пользователя команды, даже когда система полностью зависла. Основное предназначение этой подсистемы - работа с компьютером в проблемных ситуациях, например, если вы думаете что ваш компьютер заразил вирус, или компьютер завис и его нужно выключить. Для доступа к SysRq используются сочетания клавиш Alt+PrtScr+номер

Самое интересное, что мы можем выполнить безопасное выключение компьютера linux. Для этого зажмите клавиши Alt + PrtScr и поочередно нажимайте:

  • R - разблокировать клавиатуру
  • E - послать всем процессам сигнал SIGTERM
  • I - послать всем процессам сигнал SIGKILL
  • S - перенести все данные из кеша файловых систем на диск
  • U - перемонтировать файловые системы только для чтения
  • B - перезагрузить

Также вместо всего этого можно воспользоваться сочетанием клавиш Alt+PrtScr+O , в таком случае, вся процедура будет выполнена автоматически, эта команда поддерживается не всеми ядрами.

Выводы

Теперь вы знаете все что нужно, о том, как выключить Linux через терминал. Если вас застигнет врасплох ошибка или зависание компьютера, вы знаете что делать. Если остались вопросы - пишите в комментариях!

Утилита командной строки shutdown является встроенной командой Windows, которая позволяет перезагрузить, выключить компьютер, перевести его в спящий режим или завершить сеанс пользователя. В этой инструкции мы покажем основные примеры использования команды shutdown в Windows (все рассмотренные команды запускаются в окне Выполнить — Win+R ->, в командной строке cmd.exe или в консоли PowerShell).

Команда shutdown имеет следующий синтаксис:

shutdown xx:yy ]

Как вы видите, у команды довольно много опций, а также есть возможность выполнять операции выключения/перезагрузки на удаленном компьютере.

Выключение Windows командой Shutdown

Для выключения ОС Windows и компьютера необходимо использовать команду shutdown с ключом /s .

Перезагрузка Windows

Чтобы перезагрузить компьютер, необходимо добавить параметр /r . После выполнения этой команды Windows корректно перезагрузится.

Завершение сеанса пользователя

Чтобы завершить текущую сессию пользователя (logout), нужно выполнить команду:

Эта команда аналогично выполнению команды logoff .

Перевод компьютера в режим гибернации

Для перевода компьютер в режим гибернации (в этом режиме все содержимое памяти записывается в файл hyberfil.sys на диск и компьютер переходит в спящий режим с пониженным электропотреблением), выполните команду:

Перезагрузка компьютера с сообщением пользователям

Вы можете предупредить всех пользователей Windows о предстоящем выключении / перезагрузки компьютера или сервера, отправив сообщение во все активные сессии (как правило эта возможность используется на терминальных RDS серверах, за которыми одновременно работают несколько пользователей, каждый в своей собственной RDP сессии).

shutdown /r /c “Этот сервер будет перезагружен через 60 секунд.”

Отложенное выключение / перезагрузка компьютера

Можно выключить или перезагрузить компьютер с определенной задержкой (по таймеру). С помощью опции /t можно указать интервал времени (в секундах), через который ПК/сервер будет перезагружен или выключен. Тем самым вы можете предоставить пользователям дополнительное время для того, чтобы успеть сохранить открытые файлы и корректно закрыть приложения. Эту опцию удобно использовать совместно с отправкой сообщения. В этом примере мы указываем, что Windows будет выключена через 10 минут (600 секунд) и информируем пользователей сообщением.

shutdown /s /t 600 /c "Сервер будет выключен через 10 минут. Сохраните свои документы!"

Пользователю будет выдано предупреждение о запланированном выключении: Ваш сеанс будет завершен .

Если задержка очень длительная, например, 100 минут (6000 секунд), то вместо предупреждающего окна появляется всплывающее сообщение в нижнем правом углу экрана: «Ваш сеанс будет завершен. Работа Windows будет завершена через 100 мин ».

Отмена выключения / перезагрузки компьютера

После запуска команды выключения или перезагрузки Windows, по умолчанию утилита shutdown ожидает 60 секунд, не выполняя никаких действия. Администратора может отменить перезагрузку или выключение устройства, если в течении этого времени успеет выполнить команду:

После отмены выключения появится всплывающее сообщение в нижнем правом углу экрана: «Выход из системы отменен. Запланировано завершение работы отменено ».

Перезагрузить компьютер немедленно

Чтобы выключить или перезагрузить компьютер немедленно, не ожидая стандартные 60 секунд, нужно указать значение 0 для параметра /t. Например, для немедленной перезагрузки компьютера:

shutdown /r /t 0

Очень важный ключ /f . Я использую его практически всегда при выключении или перезагрузки серверов Windows. Данный атрибут обеспечивает принудительное завершение всех запущенных программ и процессов, не ожидая подтверждения от пользователя (не будем же мы ждать подтверждения закрытия программ от всех пользователей на терминальном сервере, его можно просто не дождаться).

Следующая команда выполнит перезагрузку компьютера с автоматическим запуском всех зарегистрированных приложений после перезагрузки (имеются в виду приложения, зарегистрированные в системе с использованием функции API RegisterApplicationRestart).

Запуск команды shutdown на удаленных компьютерах

Вы можете перезагрузить удаленный компьютер по сети, для этого у вас должен быть к нему сетевой доступ, а учетная запись, из-под которой запускается команда shutdown должна входить в группу локальных администраторов на удаленном компьютере (сервере):

shutdown /r /t 120 /m \\192.168.1.100

Если все указанные условия выполняются, но при выполнении команды shutdown появляется ошибка ”Отказано в доступе (5)”, на удаленном компьютере нужно (C$, ADMIN$), изменив значение параметра LocalAccountTokenFilterPolicy на 1.

reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" /v "LocalAccountTokenFilterPolicy" /t REG_DWORD /d 1 /f

Если вам необходимо удаленно перезагрузить множество компьютеров, их список можно сохранить в текстовый файл и запустить удаленную перезагрузку всех компьютеров с помощью такого PowerShell скрипта:

$sh_msg = "Ваш компьютер будет автоматически перезагружен через 10 минут. Сохраните свои файлы и закройте запущенные программы"
$sh_delay = 600 # секунд
$computers = gc C:\PS\PC-list.txt
foreach ($comp in $computers)
{
& "C:\Windows\System32\SHUTDOWN.exe" "-m \\$comp -r -c $sh_msg -t $sh_delay"
}

Графический интерфейс команды shutdown

Для тех, кому не комфортно работать в командной строке, есть графический интерфейс для команды shutdown, чтобы его вызвать, наберите:

Как вы видите, в диалоге удаленного завершения работы вы можете добавить несколько компьютеров, которые нужно перезагрузить/выключить, указать текст уведомления и задать причину выключения для сохранения в журнале Windows.

Ярлык для перезагрузки компьютера

Для удобства пользователей вы можете создать на рабочем столе ярлыки для выключения или перезагрузки компьютера с нужными настройками. Такой ярлык может быть полезен для выполнения перезагрузки из RDP сессии, когда отсутствуют кнопки перезагрузки/завершения работы компьютера в меню Пуск.

Если вы хотите, чтобы ваш компьютер или сервер всегда выключался / перезагружался в определенное время, вы можете добавить команду shutdown с определенными параметрами в планировщик заданий Windows taskschd.msc.

Например, следующее задание планировщика будет ежедневно перезагружать компьютер ночью в 0:00.

$Trigger= New-ScheduledTaskTrigger -At 00:00am -Daily
$User= "NT AUTHORITY\SYSTEM"
$Action= New-ScheduledTaskAction -Execute "shutdown.exe" -Argument "–f –r –t 120"
Register-ScheduledTask -TaskName "RebootEvertyNight_PS" -Trigger $Trigger -User $User -Action $Action -RunLevel Highest –Force

Команда SHUTDOWN используется для завершения сеанса пользователя, перезагрузки компьютера, перевода его в спящий режим или выключения питания. При наличии соответствующих разрешений, команда может выполняться для удаленной системы.

Формат командной строки:

SHUTDOWN.EXE xx:yy ]

Если в командной строке не заданы параметры, или задан параметр /? - то на экран выдается краткая справка по использованию команды.

Вместо синтаксиса /ключ допускается использование -ключ :

SHUTDOWN.EXE [-i | -l | -s | -r | -g | -a | -p | -h | -e] [-f] [-m \\компьютер][-t xxx][-d xx:yy [-c "комментарий"]]

Параметры командной строки:

/i - Отображение графического интерфейса пользователя. Этот параметр должен быть первым.
/l - Завершение сеанса. Этот параметр нельзя использовать с параметрами /m или /d .
/s - Завершение работы компьютера.
/r - Завершение работы и перезагрузка компьютера.
/g - Завершение работы и перезагрузка компьютера. После перезапуска системы, запуск всех зарегистрированных приложений.
/a - Отмена завершения работы системы. Этот параметр можно использовать только в период ожидания.
/p - Немедленное отключение локального компьютера без предупреждения. Можно использовать с параметрами /d и /f .
/h - Переключение локального компьютера в режим гибернации. Можно использовать с параметром /f .
/e - Указание причины непредвиденного завершения работы компьютера.
/o - Переход в меню дополнительных параметров загрузки и перезагрузка компьютера. Данный параметр допустим для Windows 8 и более поздних версий. Необходимо использовать в с параметром /r.
/m \\компьютер - Имя или IP-адрес конечного компьютера.
/t xxx - Задание задержки в xxx секунд перед завершением работы компьютера. Допустимый диапазон: 0-315360000 (10 лет); значение по умолчанию: 30 секунд. Если период таймаута больше 0, применяется параметр /f .
/c "комментарий" - Комментарий с причиной перезапуска или завершения работы. Наибольшая длина - 512 знаков.
/f - Принудительное закрытие запущенных приложений без предупреждения пользователей. Параметр /f используется, если для параметра /t задано значение больше 0.
/d xx:yy Необходимо указать причину для перезагрузки или выключения. "p" означает запланированную перезагрузку или завершение работы. "u" означает, что причина определяется пользователем. Если не задано ни "p", ни "u", перезагрузка или завершение работы являются незапланированными. xx является основным кодом причины (целое положительное число, меньшее 256). yy является вспомогательным кодом причины (целое положительное число, меньшее 65536).

Для управления процессами выключения и перезагрузки, пользователь должен обладать правами администратора по отношению к управляемой системе.

Примеры использования команды SHUTDOWN:

shutdown или shutdown /? - отобразить справку по использованию команды.

shutdown /s - выключить питание компьютера через 30 секунд. Пользователю будет выдано предупреждение о запланированном выключении.

shutdown /s /t 0 - выключить питание компьютера немедленно.

shutdown /s /t 60 /m \\COMP7 - выключить питание компьютера COMP7 через 60 секунд.

shutdown /s /t 60 /m \\192.168.0.1 - выключить питание компьютера с IP-адресом 192.168.0.1 через 60 секунд. При необходимости, пользователь с правами администратора, может отменить процесс выключения командой shutdown -a

shutdown /h - перевести компьютер в режим гибернации. При выполнении команды, вся информация из оперативной памяти (процессы, программы, данные) сохраняются в специальном файле hyberfil.sys , находящемся в корневом каталоге системного диска и выполняется обычное выключение питания. При следующем включении компьютера, диспетчер загрузки Windows (BOOTMGR) выполнит восстановление состояния системы из файла hyberfil.sys . Режим перевода в гибернацию должен быть включен для данного компьютера, например командой powercfg /H on или с помощью оснастки "Электропитание" панели управления Windows. Также, необходимо учитывать, что для реализации данного режима потребуется наличие большого объема свободного места на жестком диске под копию оперативной памяти.

shutdown /l - завершить сеанс текущего пользователя. Команда завершения сеанса может быть выполнена только на локальном компьютере и только для текущего пользователя. Аналогично выполнению команды logoff без параметров.

shutdown /r - выполнить перезагрузку локального компьютера. По умолчанию, перезагрузка выполнится через 30 секунд, если не задан параметр /t

shutdown /r /o /t 0 - выполнить перезагрузку локального компьютера немедленно (t 0 , с возможностью выбора дополнительных опций (/o . После перезагрузки на экран выводится меню выбора действий, с помощью которого можно либо продолжить обычную загрузку, либо выбрать дополнительные режимы для диагностики и восстановления системы. Параметр /o допустим для операционных систем Windows 8 и более поздних.

shutdown /r /m \\192.168.0.1 - выполнить перезагрузку компьютера с IP-адресом 192.168.0.1.

shutdown /g - выполнить перезагрузку с восстановлением выполнения приложений, зарегистрированных с использованием функции API RegisterApplicationRestart . Обычно используется при обновлении системы, когда в процессе установки необходима перезагрузка с продолжением процесса инсталляции.

Выполнить перезагрузку компьютера с отображением сообщения "Плановая перезагрузка" и записью в системный журнал причины - "Запланированная", основной код - "12" (0x0B), дополнительный код - "555" (0x022b).

shutdown /i - запуск графической среды утилиты shutdown.exe . На экран выводится "Диалог удаленного завершения работы".

Для выполнения операции выключения, перезагрузки или завершения сеанса пользователя, нужно ввести имя или IP- адрес компьютера с использованием кнопки "Добавить", выбрать желаемое действие, причину и заполнить поле "Комментарий", текст из которого будет отображаться в информационном сообщении о запланированном действии. Для большинства причин, поле комментария является обязательным, и без его заполнения кнопка "OK" будет неактивной.

В Windows 7 и более поздних, удаленное выключение или перезагрузка с использованием команды shutdown , может завершаться ошибкой ”Отказано в доступе (5)” даже при наличии прав администратора и при разрешении принудительного удаленного завершения работы в локальных групповых политиках. Кроме того, при обращении к скрытым административным ресурсам C$ , ADMIN$ ... и т.п. удаленного компьютера запрашивается имя пользователя и пароль, но подключение завершается отказом в доступе. Проблема решается выводом компьютера из домашней сети и добавлением (изменением) параметра реестра, в раздел:

hklm\Software\Microsoft\Windows\CurrentVersion\Policies\System
необходимо добавить параметр LocalAccountTokenFilterPolicy , принимающий занчение dword:00000001

После занесения данных в реестр, для применения изменений требуется перезагрузка.

В дополнение:

Управление электропитанием в командной строке Windows - команда

Графический интерфейс Windows за многие годы свет на нет познание командной строки. А пользоваться ей нет-нет да приходится. В этой статье я кратко распишу как пользоваться консольной командой shutdown , чтобы выключить или перегрузить компьютер под управлением Windows. Статья актуальна для семейства Windows 7/8/8.1/10.

Команда shutdown для выключения, перезагрузки или гибернации

Для выключения, перезагрузки или гибернации с помощью командной строки используется команда shutdown. Основной список параметров:

  • /? — Отображение справки. То же, что и без параметров.
  • /i — Отображение графического интерфейса пользователя. Этот параметр должен быть первым.
  • /l — Завершение сеанса. Этот параметр нельзя использовать с параметрами /m или /d.
  • /s — Завершение работы компьютера.
  • /g — Завершение работы и перезагрузка компьютера. После перезапуска системы, запуск всех зарегистрированных приложений.
  • /a — Отмена завершения работы системы. Этот параметр можно использовать только в период ожидания.
  • /p — Немедленное отключение локального компьютера без предупреждения. Можно использовать с параметрами /d и /f.
  • /h — Переключение локального компьютера в режим гибернации. Можно использовать с параметром /f.
  • /e — Указание причины непредвиденного завершения работы компьютера.
  • /m — \компьютер Указание конечного компьютера.
  • /t xxx — Задание задержки в xxx секунд перед завершением работы компьютера. Допустимый диапазон: 0-315360000 (10 лет); значение по умолчанию: 30. Если период таймаута больше 0, применяется параметр /f.
  • /c — «комментарий» Комментарий с причиной перезапуска или завершения работы. Наибольшая длина — 512 знаков.
  • /f — Принудительное закрытие запущенных приложений без предупреждения пользователей. Параметр /f используется, если для параметра /t задано значение больше 0.
  • /d xx:yy — Необходимо указать причину для перезагрузки или выключения. «p» означает запланированную перезагрузку или завершение работы. «u» означает, что причина определяется пользователем. Если не задано ни «p», ни «u», перезагрузка или завершение работы являются незапланированными. «xx» является основным номером причины (целое положительное число, меньшее 256). «yy» является вспомогательным номером причины (целое положительное число, меньшее 65536).

Если вас интересует полный список параметров то запустите утилиту shutdown без параметров.

Примеры использования утилиты shutdown

Если запустить утилиту shutdown с параметром /i , то на эране увидите примерно следующее (актуально для Windows 7):

При использовании отложенной перезагрузки:

Shutdown /r /t 180

Получим следующее уведомление на экране:

Если вы желаете отменить намеченную перезагрузку, то используйте команду:

Shutdown /а

В области уведомлений возле часов вы должны увидеть примерно следующее.