Как мне выключить мой Raspberry Pi?

246

Должен ли я просто вытащить вилку? Или лучше сначала выйти из LXDE и других запущенных процессов?

Эндрю Фогг
источник
45
Конечно, я каждый раз правильно выключаю свою пи ... кашель
berry120
11
sudo halt -pсделаю это.
Турбьёрн Равн Андерсен
12
Я хотел бы увидеть практические рекомендации для жесткой кнопки, подключенной к GPIO, чтобы сообщить ОС о завершении работы.
20
Люди, которые просто вытягивают энергию из-под своих Пи, должны действительно прекратить это делать. У меня было две полных установки Rasbian, чтобы начать паниковать из-за повреждения файловых систем из-за неправильного выключения (например, отключение питания). В обоих случаях мне пришлось заново создать образ карты и заново выполнить всю работу, которую я положил для ее настройки.
Тавис
3
@tavis - Когда вы получаете хорошую конфигурацию, которой вы довольны, вам действительно следует создать резервную копию с помощью Win23 Disk Imager. Легкий, бесплатный и т. Д. Будет хранить точную копию всей ОС Raspberry Pi, так что вы сможете быстро добраться до Best Buy, не имея полностью восстановленного Pi - при условии, что проблема заключается в сбое диска или неправильной конфигурации: -).
GojiraDeMonstah

Ответы:

250

Вы определенно не хотите просто тянуть за вилку. Это может вызвать проблемы с SD-картой и файловой системой.

Из командной строки

При использовании командной строки или окна терминала вы можете ввести следующее, чтобы выполнить чистое завершение работы:

sudo shutdown -h now

Из графического интерфейса LXDE

  1. Нажмите кнопку выключения (красная кнопка питания) в строке меню в правом нижнем углу экрана.
  2. Нажмите shutdown (или «logout», как показано в более новых версиях, затем выполните команду shutdown, указанную выше).

Как только появится надпись «Система остановлена» , вы можете отсоединить шнур питания, если это необходимо.

Стив Робиллард
источник
2
Относительно части LXDE GUI: это все еще актуально? Я пытался использовать 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и вы можете вытащить вилку.

Jivings
источник
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, почему нужно найти физический переключатель и припаять его к этим контактам? Нужно ли вам аппаратное обеспечение для его правильного выключения, или что произойдет, если вы просто отключите его с помощью программного обеспечения (например, из оболочки или из графического интерфейса)?
Здравствуйте, до свидания,
Смысл был сделать это локально без удаленного доступа. Нет кнопки, которая бы корректно выключала ОС, так что просто «потяните за штекер», как предложил OP, не очень хороший вариант.
Олег Гриб
Я не уверен, что следую за тобой. Зачем нужен физический переключатель, припаиваемый к Pi, или даже лучше, чем тянуть за вилку?
Привет, до свидания,
Нет, ты точно не Я не говорю, что «это необходимо», я говорю, что вы можете использовать решение для корректного выключения устройства без удаленного доступа.
Олег Гриб
Ах, я понял, так что это необходимо, только если вы используете решение shotdown.py. Файл, кажется, был перемещен или удален, хотя; Ваша ссылка больше не указывает на это.
Здравствуйте, до свидания,
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, вы можете захотеть уменьшить количество подключаемых / отключаемых разъемов. Одним из способов помочь в этом было бы использование переключателя включения / выключения сетевой розетки.

image_doctor
источник
Так что это за предложение? Выключить Raspberry Pi, отсоединив блок питания от сети (тем самым сократив количество циклов вставки / извлечения разъема на устройстве)? Я нахожу ваш ответ относительно вероятности отказа разъема очень интересным. Можете ли вы подтвердить это ссылками на какие-либо доказательства? Благодарю.
Эндрю Фогг
3
@AndrewFogg Это хорошо известный фактор в разработке оборудования в электротехнике. В общем случае электронные компоненты не испытывают такой же степени механических сил, как соединители. Как и следовало ожидать, изготовители, для которых срок службы сопряжения, для соединителя получаются в благоприятных условиях, поэтому они часто оптимистичны и не учитывают реальное использование человеком. Проверьте данные, Edge разъемы - 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 в командном окне, поэтому я использую индикаторы активности. Состояние не мигания светодиодов не является абсолютным показателем полного успешного выключения, но для меня это сработало достаточно хорошо.

PiHax
источник
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.

Algo
источник
Я бы только добавил, что после того, как экран погаснет, я дважды проверил, чтобы убедиться, что зеленый свет также не горит.
SDsolar
1

Существует также плата GPIO под названием Pi Supply, которая имеет переключатель включения, управление питанием и жесткое отключение для блокировки. Это также полезно, если ваш штекер находится за телевизором и к нему трудно добраться. Вы все еще должны нормально выключиться, но затем он выключает Raspberry Pi.

Если вы беспокоитесь о том, чтобы в нормальном режиме использовать порт питания micro-USB, вы можете приобрести USB-адаптер типа «мужчина-женщина» и подключить к нему блок питания.

Graeme
источник
1

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

Для выключения используйте sudo shutdown -nowили sudo shutdown -timeсообщите выключение в течение нескольких минут.

Для перезагрузки используйте sudo rebootдля перезагрузки и sudo reboot -time in minutesвключения питания и / или просто sudo rebootдля перезагрузки сейчас sudo shutdownбез -timeзначения по умолчанию, равного одной минуте, чтобы отменить отключение.sudo shutdown -c

Примечание: Вы также можете нажать кнопку Raspberry Pi и затем нажать кнопку питания. Затем выключение или перезагрузка, которые как выключение, так и перезапуск являются немедленными!


Обновить:

Как описано в некоторых других ответах на этот пост:

sudo halt

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

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

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

Джим
источник
20
Это не очень хорошая идея, чтобы просто включить Pi - вы можете рискнуть потерять данные или повредить их в случае внезапного отключения питания. Лучше всегда выключать, как задумано. например - FreeNAS (основанный на FreeBSD) безопасен для этого, потому что корень доступен только для чтения; Но ведь это NAS! данные могут быть потеряны при записи на ваши жесткие диски. Итак, конец дня. Всегда используйте реализованные методы выключения!
Петр Кула
0

Вы должны тянуть за вилку, только если зеленый светодиод не горит. Зеленый светодиод мигает, если устройство выполняет запись на SD-карту.

Аарон
источник
0

Обычные команды Unix работают с Linux, например так:

init 0 выключит его, так что можно безопасно выдернуть вилку.

init 6 перезагрузится.

В отличие от unix, нет никакой необходимости делать синхронизацию; синхронизации; до выключения. Но простое нажатие на вилку может привести к ошибкам, поэтому обязательно используйте shutdown или init 0 перед отключением питания. Если вам случится неожиданно прервать подачу питания, используйте fsck, чтобы проверить и / или устранить любые проблемы, которые могут возникнуть.

Там может быть случай, чтобы сделать полную синхронизацию; синхронизации; синхронизации; спать 30; остановка, если у вас есть внешняя файловая система, которая не монтируется без ошибок. Вы бы знали, если это проблема, запустив fsck на внешних файловых системах сразу после загрузки. Если это вызывает проблемы, то вы можете сделать все это. Но я никогда не видел, чтобы это случилось с моим Rpi3.

SDsolar
источник
0

Всегда используйте команду для выключения и выключения Raspberry Pi. Я использую sudo halt, как и многие другие пользователи. Рекомендую сделать резервную копию вашей SD-карты. Я случайно отключил мою и как-то испортил изображение. Это проще отключить, чем записать новый образ и начать заново

Pismurf
источник