Почему запуск "sudo shutdown now" не завершается?

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

sudo shutdown now

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

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

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

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

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

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

Подводя итог, можно сказать, что вот команды, доступные для poweroff (нет halt) компьютер:

sudo shutdown -h nowsudo shutdown -P nowsudo poweroffsudo halt -psudo init 0

То poweroff и halt команды в основном вызывают shutdown (за исключением poweroff -f). sudo poweroff и sudo halt -p точно такие же, как sudo shutdown -P now. Команда sudo init 0 приведет вас к уровню выполнения 0 (выключение).

Теперь, что делать, если вы хотите принудительно завершить работу, т.Е. Вы не хотите ждать, пока процессы закроются нормально? В этом случае вы можете использовать:

sudo poweroff -f

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

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

sudo shutdown -h now

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

systemctl poweroff -i 

используйте это для всех linux.

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

sudo shutdown -a now

или перезагрузиться сразу после завершения работы

sudo shutdown -r now

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

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

возможный дубликат Как мне перезапустить / завершить работу с терминала? и дубликат Каков правильный способ завершения работы терминала?