Когда я выдаю следующее:
sudo shutdown now
.. мой недавно введенный в эксплуатацию сервер Ubuntu 14.04 не выключается. Он останавливается на следующем сообщении:
* Stopping System V runlevel compatibility
Give root password for maintenance:
(or type Control-D to continue):
Если я ввожу пароль root, машина просто сидит там в приглашении оболочки.
Традиционно команда sudo shutdown now
переведет вас на уровень выполнения 1 (режим восстановления); это произойдет как для Upstart, так и для SysV init.
Чтобы получить то, что вы хотите, то есть правильно выключить компьютер, вам нужно установить переключатель -h
в положение выключение
.
Следует отметить, что halt
закроет все процессы, выключит процессоры и вернет управление контроллеру ROM материнской платы, при этом пользователю потребуется нажать кнопку питания, чтобы включить питание. питание отключено, тогда как poweroff
после выключения ЦП просто отключит питание, что приведет к правильному отключению.
Переключатель -h
выключение
] либо остановит
, либо выключит
компьютер, решение будет приниматься системой, хотя в Ubuntu я видел, что обычно отключит
машину. Чтобы убедиться в этом, вы можете использовать переключатель -P
с выключение
на выключение
компьютера.
Подводя итог, вот команды, доступные для poweroff
( not halt
) компьютера:
sudo shutdown -h now
sudo shutdown -P now
sudo poweroff
sudo halt -p
sudo init 0
poweroff
и Команды halt
в основном вызывают shutdown
(за исключением poweroff -f
). sudo poweroff
и sudo halt -p
точно такие же, как sudo shutdown -P now
. Команда sudo init 0
переведет вас на уровень выполнения 0 ( shutdown ).
Что делать, если вы хотите завершить работу принудительно, то есть вы не хотите ждать для процессов закрыть нормально? В этом случае вы можете использовать:
sudo poweroff -f
Это не будет использовать выключение
. Вместо этого он вызовет системный вызов reboot (2)
(используемый для перезагрузки, выключения и остановки), чтобы немедленно выключить компьютер.
Я почти уверен, что правильная команда должна содержать параметр «-h» (остановка). Попробуйте следующее:
sudo shutdown -h now
Это наследие тех времен, когда физическая машина не могла отключиться сама. Например, команда halt sudo halt
завершает работу всех программ и выгружает почти все из ОЗУ, готовая к выключению. Однако, если вы запустите sudo halt -p
, он сделает все это, а затем сигнализирует системе о выключении, или в случае команды shutdown
вам понадобится ] -a
вариант, я полагаю, хотя я лично использую остановку
.
Я всегда использовал следующий
sudo shutdown -a now
или для перезагрузки сразу после выключения
sudo shutdown -r now
Глядя на параметр помощи при выключении, он не перечисляет -a как правильную команду, но я мог бы давным-давно присягнули -а прервалась или что-то в этом роде. В любом случае, я продолжал использовать это, и он работал все эти годы, но похоже, что shutdown -h теперь является правильным вариантом.