Чому не працює "Sudo shutdown now"?


87

Коли я видаю таке:

sudo shutdown now

..може введений в експлуатацію сервер Ubuntu 14.04 не вимикається. Він припиняється наступним повідомленням:

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

Якщо я введу корінний пароль, машина просто сидить там під запитом оболонки.



5
Близькі виборці: це не дублікат. Хоча питання подібні, цей запитує про певну команду, інший - загальний спосіб відключення машини з командного рядка.
Сет

Відповіді:


138

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

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

-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 ( вимкнення ).

Що робити, якщо ви хочете примусово закрити, тобто ви не хочете чекати нормального закриття процесів? У такому випадку ви можете використовувати:

sudo poweroff -f

Це не буде використовувати shutdown. Швидше, він викликатиме reboot(2)системний виклик (використовується для перезавантаження, переключення та зупинки), щоб миттєво вимкнути комп'ютер.


2
Або поєднайте вимкнення "зараз" з "poweroff":sudo shutdown -P now
david6

3
Що ви маєте на увазі під "відключенням насильно"? Згідно з довідковою сторінкою , -fпараметр просто пропускається fsckпри перезавантаженні. А за даними сторінки Ubuntu man, такої опції взагалі немає.
Руслан

1
@Ruslan: Можливо, плутаючи його з halt -f/ poweroff -f, що обходить ініт і каже ядру безпосередньо перервати потужність. Те є переконливий.
grawity

1
Мій ноутбук дякую! Я був фактично затриманий на цьому і просто завжди використовував кнопку живлення, але тепер я знаю! Припинок утримував мою систему, але потужність фактично вимикає її. Дуже дякую! :-)
Терранс

1
@RGG Я рекомендую запуститись syncперед цією командою, оскільки ця команда обходить усе, що все ще може бути в кеші. syncзмусить кешоване записування на диск, тоді ви можете вимкнути його.
Терранс

15

Я впевнений, що правильна команда повинна містити параметр "-h" (зупинка). Спробуйте це:

sudo shutdown -h now

6

Це спадщина з тих часів, коли фізична машина не могла самостійно вимкнути живлення. Наприклад, команда halt sudo haltскасовує всі програми та вивантажує майже все з оперативної пам'яті, готової до вимкнення. Однак якщо ви запустите sudo halt -p, вона зробить все це, тоді сигналізуйте системі про вимкнення живлення, або у випадку shutdownкоманди вам потрібна -aопція, я вважаю, хоча я особисто використовую halt.


Що станеться, якщо я завжди вимикаю ПК за допомогою цієї команди?
Nullpointer

-1

Я завжди використовував таке

sudo shutdown -a now

або перезавантажити відразу після відключення

sudo shutdown -r now

Дивлячись на параметр довідки про вимкнення, він не зазначає -а як належну команду, але я міг би давати присягу давно - перервав або щось подібне. У будь-якому разі я продовжував це використовувати, і він працював всі ці роки, але схоже на відключення - зараз це правильний варіант.


1
Можливо, ви думаєте про команду Windows shutdown /a, яка припиняє відключення (еквівалентно shutdown -cUbuntu).
дельтаб

@deltab Так, це я маю на увазі тоді. Дивно, що відключення працює для мене.
NPIC
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.