如何关闭Raspberry Pi?


247

我应该拔插头吗?还是最好先退出LXDE和任何其他正在运行的进程?


45
当然,我每次都会正确关闭我的Pi ... 咳嗽
berry120

11
sudo halt -p会做的。
托尔比约恩Ravn的安德森

12
我很乐意看到连接到GPIO的硬按钮的“操作方法”,以告诉操作系统关闭。

20
仅仅从树莓派下撤出力量的人应该真的停止这样做。我已经进行了两次完整的Rasbian安装,由于不当关机(例如拉电)而损坏的文件系统导致内核崩溃。在这两种情况下,我都必须对卡进行重新映像,然后重新进行配置时所做的所有工作。
tavis

3
@tavis-获得满意的良好配置后,您确实应该使用Win23 Disk Imager之类的东西对其进行备份。轻巧,免费等将保留整个Raspberry Pi操作系统的准确副本,因此,假设问题出在磁盘故障或配置错误,您就只能从百思买(Best Buy)迅速迁移而不必拥有完全还原的Pi: -)。
GojiraDeMonstah 2014年

Answers:


251

您绝对不想只是拔掉插头。这可能会导致SD卡和文件系统出现问题。

从命令行

使用命令行或终端窗口时,可以输入以下内容进行干净关闭:

sudo shutdown -h now

从LXDE GUI

  1. 单击屏幕右下角菜单栏中的关闭按钮(红色电源按钮)。
  2. 单击关闭(或在较新版本上显示“注销”,然后发出上面列出的关闭命令)。

提示系统停止后,可以根据需要卸下电源线。


2
关于LXDE GUI部分:这仍然是最新的吗?我尝试使用与2015年3月发布的NOOBS 1.4 相对应的Raspbian ,底层Linux版本:Debian 7(Wheezy)-我不确定确切的版本,但它是Raspbian ultimo 2014 / primo 2015(包含Shellshock bug 的修复程序) 。按下右下方的电源按钮仅提供注销(并取消)。但是,在桌面上有一个名为“关机”的图标。我不知道NOOBS是否自定义/配置Raspbian。
彼得·莫滕森

@PeterMortensen似乎确实有较新版本的Raspbian从选项中删除了它,因此我在上面进行了编辑以解决它-谢谢。
史蒂夫·罗比拉德

57

如果可以的话,最好始终正确关闭。

不断拔下设备电源而又不能正常关机可能会对SD卡(已经有气质的物体)产生不良影响。

作为参考,要从终端关闭,可以使用:

sudo shutdown -h now

要么

sudo halt

这些命令发送SIGTERM到所有正在运行的进程,通知它们保存其数据并退出。然后SIGKILL,它发送到所有剩余的进程以停止系统,然后最终卸载所有文件系统。然后将显示屏幕System Halted,您可以拔下插头。


6
sudo poweroff也可以。
尼尔波

3
出于兴趣,什么之间的区别haltshutdown以及poweroff
ACarter 2013年

2
@ACarter没什么区别,它们都将系统切换到运行级别
6。– Jivings 2013年


1
@Jivings它们在每个系统/发行版上都不 完全相同,例如,某些BSD变体会暂停CPU,甚至在调用时都不杀死任何进程halt。此外,您可以指定halt立即停止内核/ CPU,而无需停止任何进程。因此,shutdown除非您有特定的原因,否则我会坚持使用。
突破

29

我也使用过shutdown.py解决方案。

您仍然需要找到一个物理开关并将其焊接到插头5的引脚6和8上。我从一块破旧的Arduino开发板上拿了我的东西。我还在外壳上钻了一个小孔,以确保在关闭外壳时可以用一个小木针按下按钮。

它是这样的:

开关布置的屏幕截图


作为Raspberry Pi的新手,为什么需要找到一个物理开关并将其焊接到那些引脚上?您是否需要硬件才能正确关闭它,或者如果仅使用软件(例如从外壳或GUI)将其关闭,会发生什么?
HelloGoodbye

关键是无需远程访问就可以在本地进行。没有可以正常关闭OS的按钮,因此按照OP的建议仅“拔掉插头”不是一个好选择。
Oleg Gryb

我不确定我是否会追踪您。为什么需要将物理开关焊接到Pi上,甚至比拔下插头还要好?
HelloGoodbye

不,你绝对不是。我并不是说“有必要”,而是说您可以使用该解决方案从容关闭设备,而无需远程访问。
Oleg Gryb

嗯,我明白了,所以只有在使用shotdown.py解决方案时才有必要。不过,该文件似乎已被移动或删除。您的链接不再指向它。
HelloGoodbye

14

我遵循了“ Raspberry Pi关机开关–安全关闭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循环,可以提高响应速度。
Mauro De Lucca

13

除了其他考虑因素,电源和其他连接器将设计用于有限的插入/断开循环次数。通常这是一个令人惊讶的低数字。

据统计,连接器很可能是设备故障的根源。

考虑到Pi的总体寿命,您可能希望减少其所经历的连接器插入/断开的次数。一种帮助做到这一点的方法是使用电源插座的开/关开关。


那有什么建议呢?通过断开主电源断开Raspberry Pi的电源(从而减少设备上连接器的插入/移除次数)?我发现您关于连接器故障概率的答案非常有趣。您可以通过任何证据的链接进行备份吗?谢谢。
安德鲁·福格

3
@AndrewFogg这是电气工程中设备设计中众所周知的因素。在一般情况下,电子组件承受的机械力程度不如连接器。如您所料,制造商的连接器使用寿命是在有利的条件下获得的,因此它们通常是乐观的,并不考虑实际的人类使用情况。请检查数据表,边缘连接器-50-100插入,RJ45 500-1000插入,微型- USB 5000-10000。所以,是的,您是对的,关闭墙壁电源插座是最佳选择。
image_doctor 2012年

请在您的答案中添加建议。您和我得出了结论,但其他人可能看不到其中的含义。
Bengt 2012年

还有开关呢?它们是否设计用于更多的上/下圈?在电源的交流侧放置一个开关是一个好主意吗?
Bengt 2012年

2
如果可以访问(并且不使用台式机/笔记本电脑之类的价格更高的设备),我确实发现通常更可取的做法是重新插入电缆的USB“ A”端。电缆更换起来很便宜,并且“ A”端通常更容易插入和拔出,而无需您用手指牢牢抓住电路板。
克里斯·斯特拉顿

6

我远程登录Raspberry Pi,这是我将其关闭的方法:

  1. 执行命令:
    sudo shutdown -h now
  2. 等待直到Raspberry Pi上的LED停止闪烁。
  3. 再等待五秒钟以采取良好措施(可选)。
  4. 关闭Raspberry Pi电源插入的电源条。

由于我使用的是远程显示器,因此不必在命令窗口中看到Raspberry Pi的最终输出,这就是为什么要使用活动灯的原因。LED的非闪烁状态不是绝对成功关闭的绝对指示,但对我来说它已经足够好了。


3

为避免SD卡损坏问题,您应始终正确关闭操作系统。您可以使用电源控制器硬件解决方案和通过GPIO端口信号触发的脚本来自动执行此操作(例如,除了上述的Pi Supply之外):

最后一个链接中的RemotePi板具有使用IR遥控器打开/关闭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 = off,B = boot)。

资料来源:https : //www.raspberrypi.org/forums/viewtopic.php?t=176612#p1126262


1
主要来源:en.wikipedia.org/wiki/Magic_SysRq_key(请注意您的键盘布局)
Fabian

1

这不是很难。进入命令提示符,然后键入sudo halt。根据需要输入密码。屏幕上没有任何内容时,请拔下插头。

Raspberry Pi网站上的信息。


我只想补充一点,在屏幕变暗之后,我会仔细检查以确保绿灯也熄灭。
SDsolar

1

还有一个名为Pi Supply的GPIO板,具有接通开关,电源管理和用于锁定的硬断开。如果您的插头在电视后面且难以触及,这也很有用。您仍然需要正常关闭,但随后会关闭Raspberry Pi的电源。

如果您担心在正常使用情况下会磨损电源Micro USB端口,则可以使用公对母USB适配器,然后将电源插入该适配器。


1

有多种方法可以关闭pi!仅在没有适当关闭的情况下拔下插头可能会损坏您的SD卡!

要关机,请在几分钟之内使用sudo shutdown -nowsudo 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,不运行。
goldilocks

@goldilocks谢谢,我不知道我从帖子中删除了它
User98764431 17-10-13

0

您的Raspberry Pi确实不需要电源开关。我将USB集线器用于具有开/关开关的电源。因此,每当我想关闭Raspberry Pi时,都只需关闭USB开关即可。


20
仅使用Pi的电源不是一个好主意-YOu可能会因突然断电而导致数据丢失或损坏的风险。最好总是按预期关闭。例如-FreeNAS(基于FreeBSD)是安全的,因为根是只读的;但是,因为它是NAS!写入硬盘驱动器时数据可能会丢失。始终使用已实现的关闭方法!
Piotr Kula 2012年

0

如果绿色指示灯熄灭,则仅应拔下插头。如果机器正在写入sd卡,则绿色指示灯会闪烁。


0

普通的unix命令可在Linux上使用,如下所示:

init 0将其关闭,因此可以安全拔出插头。

初始化6将重新启动。

与unix不同,没有真正的同步需求。同步; 在关机之前。但是仅拔下插头可能会导致错误,因此在断开电源之前,请确保使用shutdown或init 0。如果您确实意外中断了电源,请使用fsck检查和/或修复可能出现的任何问题。

可能需要进行完全同步;同步; 同步; 睡30; 如果您的外部文件系统不能完全卸载,请停止运行。您可以通过在启动后立即在外部文件系统上运行fsck来知道是否存在问题。如果发现问题,那么您可能想要做整个事情。但是我从未见过Rpi3会发生这种情况。


0

始终使用命令关闭和关闭Raspberry Pi。我像许多其他用户一样使用sudo halt。我建议备份您的SD卡时不小心拔出了我的电源,并以某种方式损坏了映像。与刻录新映像并重新开始相比,关闭它更容易

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.