Почему не завершено «sudo shutdown now»?

62

Когда я выдаю следующее:

sudo shutdown now

.. мой новый сервер Ubuntu 14.04 не отключается. Он останавливается со следующим сообщением:

* Stopping System V runlevel compatibility
Give root password for maintenance:
(or type Control-D to continue):

Если я набираю пароль root, машина просто сидит там в командной строке.

    
задан Jon Cage 26.01.2015 в 21:18
источник

4 ответа

110

Традиционно команда sudo shutdown now приведет вас к уровню выполнения 1 (режим восстановления); это произойдет как для Upstart, так и для SysV init. Чтобы получить то, что вы хотите, т. Е. Правильно выключить компьютер, вам нужно указать -h на shutdown .

Следует отметить, что halt закроет все процессы, выключит CPU и вернет управление на ПЗУ монитора материнской платы, требующего от пользователя нажать кнопку питания, чтобы отключить питание, тогда как poweroff после выключения CPU просто отключит питание, что приведет к правильному отключению.

Переключатель -h shutdown будет либо halt , либо poweroff компьютера, решение будет принято системой, хотя в Ubuntu я видел, что он обычно будет poweroff машины. Чтобы убедиться в этом, вы можете использовать переключатель -P с shutdown до poweroff компьютера.

Подводя итог, приведены команды, доступные для poweroff ( не 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

Это не будет использовать shutdown . Скорее, он будет вызывать системный вызов reboot(2) (используемый для перезагрузки, отключения питания и остановки) для выключения компьютера мгновенно.

    
ответ дан heemayl 26.01.2015 в 21:42
источник
14

Я уверен, что правильная команда должна содержать опцию -h (halt). Попробуйте следующее:

sudo shutdown -h now
    
ответ дан pille1842 26.01.2015 в 21:22
5

Это наследие от тех дней, когда физическая машина не могла отключиться сама по себе. Например, команда halt sudo halt завершает работу всех программ и выгружает почти все из ОЗУ, ready для отключения. Однако, если вы запустите sudo halt -p , он сделает все это, а затем подаст сигнал на выключение системы или в случае команды shutdown вам понадобится опция -a , хотя я лично использую halt .     

ответ дан John Cave 27.01.2015 в 01:11
-1

Я всегда использовал следующие

sudo shutdown -a now

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

sudo shutdown -r now

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

    
ответ дан NPIC 27.01.2015 в 00:16