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

Традиционно команда 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) системный вызов (используется для перезагрузки, выключения и остановки питания) для мгновенного выключения компьютера.