7.10. Выключение компьютера или перезагрузка Linux
Проблема
Существует множество способов выключения и перезагрузки: shutdown, halt, init 0, poweroff, Ctrl+Alt+Delete... Каким из них лучше пользоваться?
Решение
Выбор не столь существенен; используйте тот способ, который вам больше подходит. Следующие команды выключения могут использоваться только привилегированным пользователем root:
# shutdown -h now
# poweroff
# halt
Выключение через шесть минут:
# shutdown -h +6
Команда shutdown рассылает оповещения всем подключенным пользователям. Вы можете указать собственный текст:
# shutdown -h +6 "Time to stop working and start partying."
Консольные пользователи увидят следующее сообщение:
Broadcast message from root (pts/6) Wed Aug 14 13:51:24 2003
Time to stop working and start partying.
The system is going DOWN for system halt in 6 minutes!
Чтобы отменить выключение, выполните следующую команду с правами root:
# shutdown -c
Перезагрузка выполняется командой:
# shutdown -r now
# reboot
Также можно перезагрузить компьютер нажатием Ctrl+Alt+Delete. Любой пользователь может перезагрузить компьютер, если это не запрещено в файле /etc/inittab. В разделе 7.11 рассказано, как ограничить перезагрузку или предоставить разрешение конкретным пользователям.
Комментарий
Помните, что процесс выключения всегда должен быть контролируемым. Всем компьютерам, включая системы на Linux, требуется выполнить множество задач для безопасного завершения работы: завершение служб, демонтаж файловых систем и сброс буферов на диск.
Команды shutdown, poweroff и halt выполняются только привилегированным пользователем root. На первый взгляд, это может показаться нелепым, так как большинство оконных менеджеров и сред рабочих столов имеют собственные кнопки выключения, а любой пользователь, находящийся возле компьютера, может просто нажать кнопку питания. Однако такие ограничения существуют, и с этим приходится считаться.
Выходом из этой ситуации может быть предоставление ограниченных привилегий для выполнения команд выключения через sudo. Другой вариант — создать специальную группу пользователей, которым разрешено выполнять команды выключения.
См. также
shutdown(8), poweroff(8); раздел 8.20; раздел 8.21.