"Вимкнення зараз" або "відключення -h зараз", щоб вимкнути Raspberry Pi?


12

Я новачок в Linux (використовуючи Raspbian) і Raspberry Pi, і мені цікаво, яку з двох команд, згаданих у заголовку, я повинен використовувати, коли вимикаю Pi. Я погуглив їх, але все ще не знаходжу різниці між цими двома, чи не важливо, яким я користуюся?

Відповіді:


13

Спробуйте ввести man shutdown. Сторінки "man" дають вам повний перелік параметрів, які може виконувати команда, та пояснення того, що вони роблять. У випадку -h:

-h вимагає, щоб система була зупинена або вимкнута після виходу з ладу, з вибором того, що залишиться до системи.

Різниця між включенням -hопції чи ні, незначна, і в цьому випадку не має значення, оскільки ви не можете переочистити Pi в будь-якому випадку, не відбираючи живлення USB вручну.


5

Документація знаходиться в man shutdown. 1

-P, --poweroff
           Power-off the machine (the default).

[...]

-h
           Equivalent to --poweroff, unless --halt is specified.

Іноді команди мають надлишкові зовнішні комутатори, як це, тому що вони повинні задовольняти специфікації для декількох різних контекстів. Проста логіка говорить нам про те, що так poweroffчи інакше це за замовчуванням, використання -hсамо по собі є надлишковим (знову ж таки, існує для задоволення зовнішньої специфікації; деякі реалізації програми shutdownможуть не працювати таким чином за замовчуванням, але всі ті, що відповідають) будуть реалізовані -h).

Оскільки пі-сам не може живити (він або підключений == увімкнено, чи ні), використовувати його немає сенсу poweroff, але це не спричинить ніякої шкоди. Це може змінити значення WRT у тому, як червоний світлодіод блимає в кінці (ви можете порівняти з цим, shutdown -Hщоб побачити). Зауважте, головна мета shutdown- зупинити (зупинити) роботу ОС.

Таким чином, ви можете використовувати будь-яку форму.


1. Це одна насправді з Raspbian Jessie і поставляється з Systemd; він трохи відрізняється від відключення Raspbian wheezy (відповідь Greenonline цитує це), що є прикладом того, що я згадую в наступному параграфі про різні реалізації, що відповідають одній і тій же специфікації. Процес вимкнення насправді є частиною системи init , яка є SysV на хрипкому та systemd на джессі.


1

я віддаю перевагу

sudo halt

Я не можу пригадати, чому я вибрав це, але з будь-якої причини інші команди створюють проблеми. Це прекрасно працює. Щоб перезавантажити:

sudo restart

2
Якщо ви виконуєте лише це, haltце може призвести до втрати даних. Набагато кращою була б практика sudo sync;sync;halt, оскільки це синхронізує зберігання даних (тобто жорсткі диски, SD-карта) з будь-якими неписаними кешованими даними, що зберігаються в пам'яті, перш ніж зупинити систему.
Greenonline

2
@Greenonline, якщо ви виконайте halt з рівня 0 або 6 , це може призвести до втрати даних. У будь-якому іншому рівні, це рівнозначно shutdown -h now.
Марк

1
Чому користувачі схильні ігнорувати існування команди "init" на unix-подібних ОС? init 0до вимкнення, init 6до перезавантаження
rkosegi

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