Як вимкнути Raspberry Pi?


247

Треба просто витягнути вилку? Або найкраще, якщо я спочатку вийду з LXDE та будь-яких інших запущених процесів?


45
Звичайно, я
щойно

11
sudo halt -pзробимо це.
Thorbjørn Ravn Andersen

12
Я хотів би побачити "як" для жорсткої кнопки, підключеної до GPIO, щоб повідомити ОС про вимкнення.

20
Люди, які просто витягують владу з-під своїх пі, повинні справді припинити це робити. У мене було два повноцінні програми Rasbian, які починають панікувати ядро ​​через пошкоджену файлову систему від неправильного відключення (наприклад, витягування живлення). Мені довелося повторно зобразити карту в обох випадках і виконати всю роботу, яку я вклав, щоб налаштувати її.
тавіс

3
@tavis - Коли ви отримаєте гарну конфігурацію, якою ви задоволені, вам дійсно слід створити резервну копію цього інструменту, як-от на зразок Win23 Disk Imager. Легка, безкоштовна і т. Д. Збереже точну копію всієї ОС Raspberry Pi, тож ви завжди зможете швидко поїхати в Best Buy далеко від повного відновлення Pi - якщо припустити, що це проблема збою диска або неправильної конфігурації: -).
GojiraDeMonstah

Відповіді:


251

Ви точно не хочете просто тягнути вилку. Це може спричинити проблеми із SD-карткою та файловою системою.

З командного рядка

Використовуючи командний рядок або вікно терміналу, ви можете ввести наступне для чистого відключення:

sudo shutdown -h now

Від графічного інтерфейсу LXDE

  1. Клацніть кнопку вимкнення (червона кнопка живлення) на панелі меню в нижньому правому куті екрана.
  2. Клацніть на вимкнення (або "вихід із системи", як показано на новіших версіях, а потім виконайте вказану вище команду відключення).

Після того, як він скаже, що система зупинилася , ви можете вийняти шнур живлення, якщо це потрібно.


2
Щодо частини графічного інтерфейсу LXDE: чи все ще це актуально? Я намагався з Raspbian, що відповідає NOOBS 1.4, випущений 2015-03, що лежить в основі версії Linux: Debian 7 (Wheezy) - я не впевнений у точній версії, але це Raspbian ultimo 2014 / primo 2015 (виправлення помилки Shellshock включено) . Натискання кнопки живлення в нижньому правому куті пропонує лише вихід (і скасування). Однак на робочому столі є значок під назвою "Вимкнення". Я не знаю, чи NOOBS налаштовує / налаштовує Raspbian.
Пітер Мортенсен

@PeterMortensen здається, що новіша версія Raspbian видалила його з параметрів, тому я зробив редагування вище, щоб вирішити його.
Стів Робільярд

57

Найкраще завжди, якщо зможете, вимкнути правильно.

Постійне відключення пристрою без витонченого вимикання може спричинити небажаний вплив на SD-карту (темпераментний об’єкт уже).

Для довідки, для відключення від терміналу ви можете скористатися:

sudo shutdown -h now

або

sudo halt

Ці команди надсилаються SIGTERMдо всіх запущених процесів, сповіщаючи їх про збереження своїх даних та вихід. Потім він надсилає SIGKILLвсі процеси, що залишилися, щоб зупинити систему з подальшим відключенням всіх файлових систем. Потім з’явиться екран, System Haltedі ви зможете витягнути вилку.


6
sudo poweroffтакож працює чудово.
Нільпо

3
З інтересу, в чому різниця між halt, shutdownі poweroff?
ACarter

2
@ACarter Там немає ніякої різниці, всі вони перемикають систему на рівень виконання 6.
Jivings

3
Це не зовсім те саме: aplawrence.com/Linux/halt_shutdown_reboot.html
Anake

1
@Jivings вони НЕ зовсім те ж саме на кожній системі / дистрибутивах , наприклад, деякі варіанти BSD просто зупинити процесор, навіть вбиваючи будь-які процеси при виклику halt. Крім того, ви можете вказати haltвідразу зупинити ядро ​​/ процесор, не знімаючи жодних процесів; з цієї причини я б дотримувався використання, shutdownякщо у вас немає конкретної причини цього не робити.
Прорив

29

Я також використав це рішення shutdown.py .

Вам потрібно буде знайти фізичний вимикач і припаяти його до штифтів 6 та 8 заголовка 5 . Я взяв свою зі старої зламаної дошки Arduino. Я також просвердлив невеликий отвір у корпусі, щоб переконатися, що я можу натиснути кнопку маленькою дерев’яною шпилькою, коли корпус закритий.

Ось як це виглядає:

Знімок екрана розташування вимикача


Як новачок Raspberry Pi, чому потрібно знайти фізичний перемикач і припаяти його до цих штифтів? Вам потрібне обладнання, щоб його правильно вимкнути, або що трапиться, якщо просто вимкнути його за допомогою програмного забезпечення (тобто з оболонки або з графічного інтерфейсу)?
HelloGoodbye

Сенс полягав у тому, щоб зробити це локально без віддаленого доступу. Немає кнопки, яка б вишукано вимкнула ОС, тому просто "витягнути штекер", як запропонував ОП, не є хорошим варіантом.
Олег Гриб

Я не впевнений, що йду за вами. Чому необхідний фізичний перемикач, припаяний до Pi, або навіть краще, ніж витягувати вилку?
HelloGoodbye

Ні, ти точно не є. Я не кажу, що "це необхідно", я кажу, що ви можете використовувати рішення для вимкнення пристрою витончено, без віддаленого доступу.
Олег Гриб

Ах, я розумію, тому це потрібно лише в тому випадку, якщо ви використовуєте рішення shotdown.py. Здається, файл переміщено чи видалено; ваше посилання більше не вказує на нього.
HelloGoodbye

14

Я стежив за проектом, описаним у Raspberry Pi Shutdown Switch - Безпечне відключення Pi , але встановив штифт 17, щоб його внутрішньо витягнути. Потім підключіть дроти, як у вищезгаданому проекті, але не залишайте резисторів і додайте наступний скрипт Python у /etc/rc.local:

python shutdown_button.py

Файл shutdown_button.py

import RPi.GPIO as GPIO
import time
import os
GPIO.setmode(GPIO.BCM)
GPIO.setup(17, GPIO.IN, pull_up_down = GPIO.PUD_UP)
while True:
    print GPIO.input(17)
    if (GPIO.input(17) == False):
        os.system("sudo shutdown -h now")
        break
    time.sleep(1)

1
Хитрість вищезазначеного полягала б у тому, що оскільки він перевіряє стан раз на секунду, іноді знадобиться утримувати кнопку на повну секунду, а в інший раз, здається, вона почне миттєво вимикатися. Це добре, звичайно, просто примха.
Брайан

8
Використовуйте GPIO.wait_for_edge(17, GPIO.FALLING)замість циклу while, більш чуйний.
Мауро де Лукка

13

Інші міркування, окрім потужності та інших з'єднувачів, будуть розраховані на обмежену кількість циклів вставки / відключення. Часто це напрочуд низька кількість.

Статистично роз'єми є дуже ймовірним джерелом несправності обладнання.

З огляду на загальну довговічність Вашого Pi, ви, можливо, захочете зменшити кількість вставлених / відключених роз'ємів, які він відчуває. Одним із способів допомогти це буде використання перемикача включення / вимкнення розетки електромережі.


То яка пропозиція? Вимкніть Raspberry Pi, відключивши джерело живлення від мережі (таким чином зменшуючи кількість циклів вставки / вилучення до роз’єму на пристрої)? Я вважаю вашу відповідь щодо ймовірності виходу з ладу дуже цікавою. Чи можете ви створити резервну копію посилань на будь-які докази? Дякую.
Ендрю Фогг

3
@AndrewFogg Це добре відомий фактор дизайну обладнання в електротехніці. У загальному випадку електронні компоненти не мають такого ступеня механічних зусиль, як у з'єднувачів. Як ви могли очікувати, виробники, що спаровуються, для роз'ємів отримуються в сприятливих умовах, тому часто оптимістичні і не враховують використання в реальному житті людини. Перевірте аркуші даних, Крайові з'єднувачі - 50-100 вставок, вставки RJ45 500-1000, Micro- USB 5000-10000. Так що так, ви правильно, вимкнення розетки - найкращий вибір.
image_doctor

Будь ласка, додайте пропозицію до своєї відповіді. Ми з вами дійшли висновку, але інші можуть не бачити наслідків.
Бенгт

А як щодо вимикачів? Чи вони розроблені для більшої кількості ввімкнутих та вимикаються кіл? Було б гарною ідеєю встановити вимикач на стороні змінного струму живлення?
Бенгт

2
Якщо це є доступним (і не потрапляє в ще більш дорогий предмет обладнання, такий як робочий стіл / ноутбук), я вважаю, що часто бажано підключати USB "A" кінець кабелю. Кабелі дешево замінити, а кінець "А", як правило, вилки та роз'єднання простіші легше, не вимагаючи, щоб ви міцно хапали дошку пальцями.
Кріс Страттон

6

Я входжу в свою програму Raspberry Pi віддалено, і ось, як я її вимкнув:

  1. Виконай команду:
    sudo shutdown -h now
  2. Зачекайте, поки світлодіоди перестануть блимати на Raspberry Pi.
  3. Зачекайте додаткові п’ять секунд для хорошої міри (необов’язково)
  4. Вимкніть пристрій живлення, до якого підключений блок живлення Raspberry Pi.

Оскільки я використовую віддалений дисплей, я не обов'язково бачу остаточний вихід Raspberry Pi у вікні команди, тому я використовую індикатори активності. Стан світлодіодів, що не миготить, не є абсолютною ознакою повного успішного відключення, але він працював досить добре для мене.


3

Щоб уникнути проблем із пошкодженням SD-картки, завжди слід правильно вимикати ОС. Ви можете автоматизувати це, скориставшись апаратним рішенням контролера живлення та сценарієм, який спрацьовує через сигнал порту GPIO, наприклад (окрім згаданого вище джерела Pi):

Дошка RemotePi в останньому посиланні має додаткову функціональність використання ІК-пульта для включення / вимкнення Raspberry Pi.


2

Якщо ваш Raspberry Pi заморожений, ви не можете перейти до ssh чи консолі, тоді це допомагає. Мені було порушено кілька моїх карт SD, перш ніж знали це:

Утримуючи обидві клавіші Alt + PrintScreen, і, утримуючи ці клавіші, натискайте наступні клавіші послідовно, одна за одною, з декількома секундами паузи між ними.

Alt+ PrintScreen+R E I S U O

або

Alt+ PrintScreen+ R E I S U B(перезавантажити)

Зручне мнемонічне пам’ятання про те, що потрібно перезавантажити, навіть якщо система повністю порушена.

Замініть "O" на "B", щоб вимкнути систему замість перезавантаження (O = вимкнено, B = завантаження).

Джерело: https://www.raspberrypi.org/forums/viewtopic.php?t=176612#p1126262


1
першоджерело: en.wikipedia.org/wiki/Magic_SysRq_key (будь ласка, пам’ятайте про розкладку клавіатури)
Фабіан

1

Це не дуже важко. Зайдіть у командний рядок та введіть sudo halt. Введіть свій пароль, якщо потрібно. Як тільки на екрані нічого немає, витягніть вилку.

Інформація з веб-сайту Raspberry Pi.


Я хотів би лише додати, що після того, як екран потемніє, я двічі перевіряю, щоб переконатися, що зелене світло також згасне.
SDsolar

1

Існує також плата GPIO під назвою Pi Supply, яка має вимикач, керування живленням та жорстке відключення блокування. Також корисно, якщо ваш штепсель знаходиться за телевізором і до нього важко дістатися. Вам все-таки потрібно нормально вимкнутись, але він вимикає Raspberry Pi.

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


1

Існує кілька способів вимкнути пі! Просто витягування штепсельної вилки без належного відключення може пошкодити вашу SD-карту!

Щоб вимкнути, використовуйте sudo shutdown -nowабо sudo shutdown -timeповідомте про припинення роботи за лічені хвилини.

Щоб перезавантажити використання sudo rebootдля перезавантаження та sudo reboot -time in minutesввімкнення живлення та використання просто sudo rebootдля перезавантаження зараз sudo shutdownбез -timeзамовчування до однієї хвилини для скасування використання вимкненняsudo shutdown -c

Примітка: Ви також можете натиснути кнопку малинового пі, а потім натиснути кнопку живлення. Тоді вимкнення або перезавантаження, а також відключення та перезапуск є негайними!


Оновлення:

Як описано в деяких інших відповідях на цій публікації:

sudo halt

Також буде працювати: раз на екрані нічого немає, просто витягніть вилку!


"жодний спосіб увімкнути живлення, не витягуючи штепсельну вилку та не повертаючи її назад" -> Неправильно. Заголовок RUN можна використовувати для жорсткого скидання SoC, приводячи його до завантаження (незалежно від того, відключена ОС чи ні ...): raspberrypi.stackexchange.com/q/29339/5538 На деяких моделях вони позначені міткою P6, а не RUN.
золотинки

@goldilocks Дякую, що я не знав, що видалив його зі своєї посади
User98764431

0

Вам не потрібен вимикач живлення для вашого Raspberry Pi. Я використовую USB-концентратор для блоку живлення, який має вимикачі включення / вимикання. Отже, коли я хочу вимкнути Raspberry Pi, я просто відключаю USB-вимикач.


20
Недоцільно, щоб тільки потужність Pi - YOU могла ризикувати втратою даних або корупцією при раптових перепадах електроенергії. Краще завжди закривати за призначенням. наприклад - FreeNAS (заснований на FreeBSD) це безпечно робити, тому що корінь читається тільки; Але, адже це НАС! дані можуть бути втрачені під час запису на ваші жорсткі диски. Отже, кінець дня. Завжди використовуйте реалізовані методи відключення!
Пьотр Кула

0

Витягувати вилку слід лише у випадку, якщо зелений світлодіод вимкнений. Зелений світлодіод блимає, якщо машина записує на SD-карту.


0

Звичайні команди Unix працюють з Linux, наприклад:

init 0 вимкне його, щоб надійно витягнути вилку.

init 6 перезавантажиться.

На відміну від unix, немає реальної потреби синхронізувати; синхронізація; перед вимкненням. Але просто витягнення штепсельної вилки може призвести до помилок, тому перед відключенням живлення обов'язково використовуйте вимкнення або init 0. Якщо у вас випадково перервано живлення, скористайтеся fsck, щоб перевірити та / або виправити будь-які проблеми, які можуть виникнути.

Можливо, випадок зробити повну синхронізацію; синхронізація; синхронізація; сон 30; зупиняйтеся, якщо у вас є зовнішня файлова система, яка не відключається чисто. Ви б знали, чи це проблема, запустивши fsck у зовнішніх файлових системах відразу після завантаження. Якщо це знаходить проблеми, то, можливо, ви захочете все зробити. Але я ніколи не бачив, щоб це сталося з моїм Rpi3.


0

Завжди використовуйте команду, щоб вимкнути та вимкнути Raspberry Pi. Я використовую sudo halt, як і багато інших користувачів. Рекомендую створити резервну копію вашої SD-карти. Я випадково відключив пробку від роз'єму і пошкодив зображення. Простіше відключити, ніж записати нове зображення і почати спочатку

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