如何安全地关闭Raspberry Pi?


30

通常在台式计算机上,如果运行sudo shutdown -P now,计算机将完全关闭,并且可以通过按钮再次将其重新打开。(同样,如果计算机崩溃,我可以通过按住电源按钮5秒钟左右来强制重新启动。)

Raspberry Pi没有电源按钮。实际上,如果我运行sudo shutdown -P now,电源指示灯似乎仍然处于打开状态,并且要重新启动它,我似乎需要拔下电源插头并重新插入。这似乎有点类似于旧版本Windows中的“现在可以安全地关闭计算机了”。

在什么时候可以安全地拔下Raspberry Pi的插头?难道我做错了什么?


2
红色指示灯仅表示oi已接通电源。您要注意的一个是绿色的。如果闪烁,则表示oi正在访问microSD卡。当您关闭手表时。它应该闪烁4-10次。一旦发生这种情况,可以安全地拔掉插头。
TheXed

1
如果您的SD卡已使用ext4(或其他日志记录的FS)格式化,则坦率地说,无论什么时候pi闲置时将其关闭都可以或多或少地安全。至少比关闭Windows95计算机安全得多。(并不是我建议将其用于任何对安全性有严格要求的应用...但是无论如何pi都不是理想的选择。)
左右左转

4
@leftaroundabout,当基础介质无法干净处理电源故障时,日记功能不大。断电后,我经常需要重新格式化SD卡。
2016年

@Mark:可能。我有一个pi,我经常不安全地给它供电,没有复杂性,但是实际上,这个pi仅仅将卡用于引导加载程序,而其他所有内容都位于USB硬盘驱动器上。
大约

@Mark在数据写入过程中也没有多大意义。您仍然会丢失数据。它只是保证了文件系统的一致性。
鲍勃,

Answers:


18

您没有做错任何事。

在关闭电源之前,活动指示灯应闪烁3或4次。这样可以安全地断开电源。

我通常会关机,走几分钟,然后将电源线拉出。


15

您无需断开电源即可重启Pi。SD卡附近有一对焊盘(我认为标记的复位可能会运行-我在Pi上看不到,因为它们都已焊接在板上了。)短暂地重新启动。

最近的Rasbpian具有内置的关机流程(由处理systemd-logind

将以下内容添加到 /boot/config.txt

dtoverlay=gpio-shutdown,gpio_pin=5

这使连接在引脚29(GPIO 5)和引脚30(Gnd)之间的开关能够启动有序的Pi关机。

几乎可以使用任何引脚-默认为引脚5(GPIO 3),尽管该,gpio_pin=21引脚通常用于I²C, 但使用的脚本脚与脚本引脚40(GPIO 21)和引脚39(Gnd)相同。

我建议sudo poweroff关闭Pi。您的操作没有任何问题,但是poweroff在安全关闭电源的情况下,绿色LED会以1秒的间隔闪烁10次。

我有一个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()

您可以添加该python代码以供参考,如果我提供电源,它将自动启动pi或其他功能吗?
Gaurav Dave

4

似乎没有人回答这个问题:“在什么时候可以安全地将Raspberry Pi的插头拔掉?”

要正确关闭,请运行

sudo shutdown

执行此操作时,您将看到“ ACT”指示灯(绿色的指示灯)稳定闪烁10次(间隔为0.5秒)。一旦停止闪烁,绿灯将熄灭。 此时,可以安全地断开电源或拔下插头。

只要Pi通电,红灯就会一直亮着。

关机后,您必须先切断电源,然后再接通电源以接通Pi的电源。


2

如先前的回答所述,红色指示灯表示pi接通电源,而绿色指示灯表示活动(我相信磁盘活动)

您可以在关机命令后绿色指示灯停止闪烁时拔下插头,也可以短路板上的运行/重置垫

如果您愿意焊接一些引脚,网站上有很好的说明,说明如何添加硬复位开关。

如果您确实使用硬重置,请确保仅在停止或系统关闭后才使用它,或者在万不得已时立即使用它,因为它会立即重新启动处理器,如果您正在写入SD卡,则可能会像拔掉电源一样损坏它在运行时


2

这是一个非常简单的关闭python脚本。

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")
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.