Різниця між "зупинкою" та "відключенням зараз"?


30

Ubuntu one remote використовується sudo -S -p '' haltдля відключення і не працює до кінця. залишаючи монітор увімкненим повідомленням

тепер зупиниться

[22225.11163] зупинено

У чому різниця між sudo -S -p " halt і sudo shutdown now?

Відповіді:


41

-SІ -pвимикачі для sudoне має ніякого значення в даному випадку. Ось що вони роблять відповідно.

-SПеремикач призводить sudoпрочитати пароль з STDIN. Це дозволяє, наприклад, ввести пароль sudoчерез echoабо через cat.

-pПеремикач дозволяє змінити пароль за замовчуванням підказки і використовувати призначені для користувача один, або взагалі.


Важлива відмінність полягає в двох командах, які видає sudo.

haltКоманда, якщо викликається без -pперемикача, просто зупиняє ОС і зупиняє всі процесори. Після того, як система буде чисто зупинена, користувач може безпечно натиснути кнопку живлення на своєму комп’ютері вручну.

В poweroff, shutdown -h nowі halt -pвсі команди роблять те ж саме , як в haltпоодинці, в той час як додатково посилає команду ACPI для сигналу блоку живлення , щоб вимкнути живлення. Це запобігає фізичному натисканню кнопки живлення на комп’ютері.


9
shutdown -h nowтакож не обов'язково вимикати живлення. Відповідно man shutdown, це залежить від системи. shutdown -H now(зауважте, що шапки увімкнено H) - це гарантований еквівалентhalt
MestreLion

11

haltні shutdown, це різні команди. Перший не відключає живлення, якщо тільки -pне використовується варіант

З посібника ( man halt): "-p, --poweroff: Вказує команді зупинки замість того, щоб поводитися як poweroff."

І, у вашому випадку, -pвін не використовувався в haltкоманді, отже ваш комп'ютер не був вимкнений.

Не плутай цей -p з тим, з якого sudo, це інший параметр для іншої команди. Від man sudo:

  • -S Параметр -S (stdin) викликає sudo для зчитування пароля зі стандартного вводу замість термінального пристрою. За паролем повинен дотримуватися символ нового рядка.
  • -p prompt Параметр -p (підказка) дозволяє переосмислити підказку щодо пароля за замовчуванням і використовувати спеціальний.

У вашому випадку promptвін порожній (жодне повідомлення не відображається для sudo при запиті пароля), і -S змушує sudo приймати пароль root vi stdin (тому пароль може надаватися за допомогою труб і перенаправлення з інших команд, а не вводити)


7

На сайті Unix SE є хороша відповідь щодо випуску shutdownvs halt: Яка різниця між командами Halt і Shutdown?

Що стосується sudo -S -p ''частини, це видалить повідомлення про запит пароля в терміналі (ви все одно маєте ввести свій пароль)

Наприклад, запуск sudo <some_command>дасть цей результат перед запуском цієї команди:

[sudo] пароль для:

Але біг sudo -S -p '' <some_command>приховає це повідомлення.

Насправді повідомлення, яке ви вводите в лапки, замінює попереднє повідомлення.

Вперед і спробуйте наступне, і побачите різницю:

 sudo -S -p 'Hey, I am a custom message.' ls

0

Немає різниці між командою зупинки та відключенням з точки зору намірів користувача. Незначна різниця полягає в тому, що при зупинці вам потрібно зручно натиснути кнопку живлення для вимкнення системи, тоді як в команді відключення вона автоматично доручить розширеному інтерфейсу живлення інтерфейсу (ACPI) надіслати сигнал силовому блоку для вимкнення системи.

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