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

Обычно с настольным компьютером, если я запускаю sudo shutdown -P now, компьютер полностью отключается, и я могу снова включить его с помощью кнопки. (Аналогично, если компьютер сработает, я могу принудительно перезапустить, удерживая кнопку питания в течение 5 секунд или около того.)

У малины Pi нет кнопки питания. На самом деле, если я запустил sudo shutdown -P now, индикатор питания все еще, кажется, включен, и для того, чтобы запустить его снова, мне, похоже, нужно отключить его и снова подключить обратно , Это похоже на то, что «теперь безопасно отключать компьютер» в старых версиях Windows.

В какой момент безопасно вытащить вилку на малиновый пи? Я что-то делаю неправильно?

26 голосов | спросил George Simms 21 FebruaryEurope/MoscowbSun, 21 Feb 2016 21:50:53 +0300000000pmSun, 21 Feb 2016 21:50:53 +030016 2016, 21:50:53

5 ответов


17

Вы ничего не делаете неправильно.

Индикатор активности должен мигать 3 или 4 раза перед выключением питания. Затем безопасно удалять питание.

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

ответил joan 21 FebruaryEurope/MoscowbSun, 21 Feb 2016 21:57:54 +0300000000pmSun, 21 Feb 2016 21:57:54 +030016 2016, 21:57:54
16

Вам не нужно удалять питание для перезапуска Pi. Есть пара прокладок рядом с SD-картой (я думаю, что сбрасывание возможно возможно - я не вижу на своем Pi, потому что все они имеют пайку на плате). Мгновенно короткий для перезапуска.

  

В последнее время у Rasbpian есть встроенный процесс выключения (обрабатывается systemd-logind)

     

Добавьте следующее в /boot/config.txt

dtoverlay=gpio-shutdown,gpio_pin=5
  

Это позволяет переключателю, подключенному между контактом 29 (GPIO 5) и выводом 30 (Gnd), инициировать упорядоченное выключение Pi.

     

Можно использовать почти любой штырь - по умолчанию используется контакт 5 (GPIO 3), хотя это часто используется для I ²C   ,gpio_pin=21 будут использовать те же контакты, что и в пиктограмме 40 скрипта (GPIO 21) и выводе 39 (Gnd)

Я рекомендую sudo poweroff закрыть Pi. Нет ничего плохого в том, что вы делаете, но poweroff заставляет зеленый светодиод мигать 10 раз с интервалом в 1 секунду, когда безопасно отключать питание.

У меня есть скрипт Python, который отключает Pi с помощью кнопки.

 #!/usr/bin/env python2.7
#-------------------------------------------------------------------------------
# Name:         Shutdown Daemon
#
# Purpose:      This program gets activated at the end of the boot process by
#               cron. (@ reboot sudo python /home/pi/shutdown_daemon.py)
#               It monitors a button press. If the user presses the button, we
#               Halt the Pi, by executing the poweroff command.
#
#               The power to the Pi will then be cut when the Pi has reached the
#               poweroff state (Halt).
#               To activate a gpio pin with the poweroff state, the
#               /boot/config.txt file needs to have :
#               dtoverlay=gpio-poweroff,gpiopin=27
#
# Author:      Paul Versteeg
#
# Created:     15-06-2015, revised on 18-12-2015
# Copyright:   (c) Paul 2015
# https://www.raspberrypi.org/forums/viewtopic.php?p=864409#p864409
#-------------------------------------------------------------------------------

import RPi.GPIO as GPIO
import subprocess
import time

GPIO.setmode(GPIO.BCM) # use GPIO numbering
GPIO.setwarnings(False)

# I use the following two GPIO pins because they are next to each other,
# and I can use a two pin header to connect the switch logic to the Pi.
# INT = 17    # GPIO-17 button interrupt to shutdown procedure
# KILL = 27   # GPIO-27 /KILL : this pin is programmed in /boot/config.txt and cannot be used by any other program
INT = 21    # GPIO button interrupt to shutdown procedure

# use a weak pull_up to create a high
GPIO.setup(INT, GPIO.IN, pull_up_down=GPIO.PUD_UP)

def main():

    while True:
        # set an interrupt on a falling edge and wait for it to happen
        GPIO.wait_for_edge(INT, GPIO.FALLING)
#       print "button pressed"
        time.sleep(1)   # Wait 1 second to check for spurious input
        if( GPIO.input(INT) == 0 ) :
            subprocess.call(['poweroff'], shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)

if __name__ == '__main__':
    main()
ответил Milliways 22 FebruaryEurope/MoscowbMon, 22 Feb 2016 01:29:21 +0300000000amMon, 22 Feb 2016 01:29:21 +030016 2016, 01:29:21
3

Никто, кажется, не ответил на этот вопрос: «В какой момент безопасно вытащить вилку на малиновый пи?»

Чтобы правильно завершить работу, вы запустите

sudo shutdown

Когда вы это сделаете, вы увидите, что индикатор «ACT» (зеленый) мерцает ровно 10 раз (интервалы 0,5 секунды). Когда он перестанет мигать, зеленый индикатор погаснет. На этом этапе безопасно снимать питание или вытаскивать вилку.

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

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

ответил Electronics_John 8 MaramTue, 08 Mar 2016 11:56:27 +03002016-03-08T11:56:27+03:0011 2016, 11:56:27
2

Как указывали предыдущие ответы, красный светодиод означает, что pi получает мощность, где, поскольку зеленый светодиод является активностью (я считаю, что активность диска)

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

Этот веб-сайт содержит отличные инструкции по добавлению переключателя жесткого сброса, если вы готовы припаять несколько контактов.

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

ответил S.Rose 22 FebruaryEurope/MoscowbMon, 22 Feb 2016 06:41:48 +0300000000amMon, 22 Feb 2016 06:41:48 +030016 2016, 06:41:48
2

Вот действительно простой сценарий python shutdown.

import RPi.GPIO as GPIO 
import os 
channel=11 
GPIO.setmode(GPIO.BOARD) 
#Pin 11 & Gnd 

GPIO.setup(channel, GPIO.IN, pull_up_down=GPIO.PUD_UP) 
GPIO.wait_for_edge(channel, GPIO.FALLING) 
os.system("sudo shutdown -h now")
ответил Andy Anderson 10 SunEurope/Moscow2017-12-10T01:58:59+03:00Europe/Moscow12bEurope/MoscowSun, 10 Dec 2017 01:58:59 +0300 2017, 01:58:59

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132