Какой правильный способ подключения к терминалу?

37

Я пытался выключить компьютер через SSH. Я казнил

sudo shutdown now

Пользователь вышел из системы, и Ubuntu начал выключаться, но он замер на последнем экране с логотипом Ubuntu и загрузочными точками. Есть идеи, где проблема может быть?

Кроме того, в чем разница между shutdownи halt? Какие еще подобные команды есть?

Ричард Родригес
источник
Это работает, если вы запускаете "sudo shutdown -P now"?
Элия ​​Каган
или sudo shutdown -h сейчас
готово
+1 за вопрос. У меня была точно такая же проблема.
Boehj
Кстати: это (также) работает со всех (других) терминалов tty :-)
чокнутый о natty

Ответы:

36

Из страниц ЧЕЛОВЕКА:

Завершение работы - «завершение работы обеспечивает безопасное отключение системы. Все зарегистрированные пользователи уведомляются о том, что система выходит из строя, и в течение последних пяти минут ВРЕМЕНИ новые входы в систему предотвращаются». Время, упомянутое здесь, является суммой, указанной пользователем, который выключается.

Останов - «Эти программы позволяют системному администратору перезагрузить, остановить или выключить систему».

Разница в том, что Halt может быть более «агрессивным» при выключении, чем сам Shutdown. У него есть параметры, которые могут буквально принудительно отключить систему без учета служб или открытых программ. Если вы запустите halt без каких-либо параметров, он просто выполнит команду выключения. Что-то вроде псевдонима. Если вы запустите его, например, с параметром, --forceон очень быстро «перезагрузит» систему.

В случае остановки или выключения они будут ожидать правильного завершения всех процессов, прежде чем выключать или перезагружать компьютер. Если служба или приложение не закрываются или не закрываются должным образом, вы увидите, что вы там упомянули (логотип ubuntu с точками).

В терминале для одного или нескольких пользователей правильным способом является отключение. Но если выключение не работает, проверьте, какие службы у вас запущены, а какие вызывают замедление или зависание выключения.

Учитывая это, существует несколько способов перезагрузки или выключения системы:

Перезагрузка - shutdown -r,reboot

В этом случае перезагрузка - это просто вызов shutdown -r.

Завершение работы - halt, shutdown, sudo init 0, shutdown -h now,poweroff

В этом случае так poweroffже, как вызовshutdown -P

Как вы заметили, shutdownкоманда может делать много вещей, вот небольшой список:

-r  Requests that the system be rebooted after it has been brought down
-h  Requests that the system be either halted or powered off after it has been brought down, with the choice as to which left up to the system
-H  Requests that the system be halted after it has been brought down
-P  Requests that the system be powered off after it has been brought down
-c  Cancels a running shutdown. TIME is not specified with this option, the first argument is MESSAGE
-k  Only send out the warning messages and disable logins, do not actually bring the system down

Как и reboot

-f, --force                 force reboot or halt, don't call shutdown(8)
-p, --poweroff              switch off the power when called as halt

Однако есть разница между выключением через терминал и выбором опции выключения в Unity. Последний попросит пользователя взаимодействовать с любой несохраненной работой (например, libreoffice, inkscape ...). первый просто отправит сигнал всем процессам, говоря им, чтобы они закрылись. Взаимодействие с пользователем не требуется, поэтому несохраненная работа исчезнет.

Луис Альварадо
источник
2
Так как же получается, что Ubuntu правильно отключается при использовании кнопки выключения на верхней панели? Чем это отличается от команды терминала? Почему это работает, а команда терминала - нет? Это довольно странно ...
Ричард Родригес
16
@RiMMER shutdownвыключает ОС, но на самом деле не выключает компьютер. Вам нужен либо дополнительный аргумент, например shutdown -P, или позвонить poweroffвместо. (Они так же.) Полный перечень подобных команд reboot, halt, poweroffи shutdown.
jg-faustus
В моем случае ноутбук никогда не выключается с помощью кнопки выключения внутри единства или самой команды.
Луис Альварадо
Как создать его из XMonad? ("M-S-k", spawn "sudo shutdown now -P")не работает
Абдулсаттар Мухаммед
будет ли 'shutdown -P' также работать с tty1 (чтобы также выключить tty7 и выключить машину)?
сумасшедший о Natty
7

Что вам нужно сделать, это выключить компьютер после его выключения, выполнив следующую команду:

отключение sudo -P 20

Эндрю
источник
1
Почему это лучше, чем просто shutdown -P? РЕДАКТИРОВАТЬ : Разве это не может знать, когда я хороший момент для выключения питания?
Дэвид Табернеро М.
Потому что, если вы «внезапно» не уверены в завершении работы, вы можете отменить процесс выключения. Использование без времени сделает это мгновенно = без поворота назад. Также, если вы находитесь на сервере с большим количеством людей, они получат сообщение о том, что сервер вскоре отключится, и у них останется некоторое время для подготовки к выходу из системы.
s1mmel
2

Еще одна команда для выключения системы

sudo init 0

init 0 вызывает все сценарии завершения работы и корректно завершает работу вашего компьютера.

Кетан Патель
источник
3
Это требует немного большего объяснения, я думаю.
don.joey
0

Какой правильный способ подключения к терминалу?

shutdown -h now

или

poweroff
Тревор
источник