在没有SSH或监视器的情况下安全关闭Pi?


24

我的Pi目前不响应SSH,而我唯一的HDMI监视器是几米外的大型电视。我听说过关于拔出插头的坏事,但是我还有其他选择吗?

当前正在运行无头的树莓派,也许我可以连接键盘并猜测命令?


3
它暂时不起作用,但是您可以在GPIO引脚上添加一个按钮以在将来将其正确关闭
Rizzle Light

作为数据点:几年来,我一直在使用RPis在电池供电的移动机器人上执行各种任务。它们经常断电而没有警告。我还没有遇到任何Pis / SD卡的问题(嗯,除了SD连接由于持续的振动和壁撞而松动)。
Mike Ounsworth

您不能将HDMI监视器暂时移开几米,然后在完成后放回去吗?
jpmc26 2016年

@ jpmc26它走下了楼梯,是一台相当大的电视。
vpzomtrrfrt

Answers:


24

尽管应该将其视为最后的选择,因为它确实会增加文件系统损坏的风险,但是如果绿色ACT指示灯没有频繁闪烁,则拔掉电源线通常是可以

默认情况下,ACT LED显示SD卡上的I / O活动。如果关闭,则很可能系统处于空闲状态。这不一定是正确的,但是杀死一个忙于CPU密集型活动(而不是I / O)的系统从本质上来说并不是问题。操作系统确实在内存中缓存了文件系统信息,这意味着它可能与SD卡上的实际存储不同步,但是至少应该每隔几秒钟处理一次(您有时可以从ACT推断出这种模式LED)。

因此,如果观看5-10秒钟后它似乎处于空闲状态,而您别无选择,请继续并拔下电源。同样,这不能保证任何事情,并且在不幸的情况下,系统可能会被锁定并且文件系统同步无法正确进行,但是在大多数情况下,您应该可以。

我可能不得不以这种方式将pi上的电源线拉了一百次(或断电),并且因此而无法回忆曾经的悲伤。有时我会将卡放在另一台机器上,然后e2fsck -f在根文件系统上运行,这是值得的。操作系统将在启动时自动检查文件系统,但是此检查有可能失败(或未正确完成)并且未被注意。


7
5到10秒的空闲时间是因为Linux的默认设置为/proc/sys/vm/dirty_writeback_centisecs500厘秒(5秒)。因此,如果Linux的I / O缓冲区中有未写入的数据,它将在5秒后开始将其刷新到磁盘,除非您进行了更改。从理论上讲,即使您在写操作期间断电,日记记录FS也应该可以防止整个文件系统损坏,但是等待它空闲可以为您提供更大的机会,也不会损坏任何最近修改的文件。(哪些日志仅使用ext3 / ext4 data = journal进行保护,这不是默认值)
Peter Cordes

30

Magic SysRq键

这应该可以帮助您入门。

神奇的SysRq键是Linux内核理解的键组合,它使用户可以执行各种低级命令,而与系统的状态无关。它通常用于从冻结中恢复,或在不破坏文件系统的情况下重新启动计算机。其效果类似于计算机的硬件重置按钮(或电源开关),但具有更多选项和更多控制权。

您可以插入键盘,然后将其输入盲区(没有监视器)。

没有文件系统损坏,不需要额外的硬件。


GPIO按钮

正如Rizzle Light所建议的那样,您可以抓住某种按钮并将其连接到GPIO引脚,并做一点编程魔术,以使按下按钮执行“ poweroff”命令(当然具有管理员权限)。

可以在线上找到大量的GPIO编程教程,例如教程。

Rahul R Dhobi有一个很好的两层python脚本,它将关闭Raspberry Pi:

import os
os.system("shutdown now -h")

以root权限执行脚本。


2
Linux内核的magic-SysRQ文档是我印在纸上的唯一文档:)。(那是我只有一台电脑的时候。)
彼得·科德斯

3

无需猜测;只需插入键盘并输入以下内容,然后敲击即可enter

sudo shutdown -h now

shutdown命令需要root特权才能执行。


4
您必须先(盲目)登录,然后使用特权帐户或(假设Raspbian的超级pi用户...)prepend 登录sudo
goldilocks

2
@goldilocks:您可能希望将其放在命令sudo开头,而不是附加它:-)
psmears

@goldilocks:没错,登录似乎不那么麻烦。
与莫妮卡(Monica)进行的轻度比赛

1
我没有对困难程度发表评论;)@psmears糟糕,离开了!已更正。
goldilocks

@goldilocks:足够公平:)
与Monica进行的

1

在这种情况下,串行端口是很好的备用,默认情况下已启用。

您可以尝试使用Putty连接到串行端口。如果可以,请使用您的用户名登录并发出“ sudo poweroff”以安全关闭。

有关更多信息,请参见http://elinux.org/RPi_Serial_Connection


-1

窗口按钮-九次向下键-两次输入...欣赏...


1
感谢您的回答-感谢所有输入。我被要求提出一些建议以帮助您改善答案:首先,我假设“窗口按钮”是指Windows键盘上带有Microsoft徽标的按钮。如果是这样,则应明确声明。同样,您的答案中暗含了一个按键顺序,但不够具体。简而言之,请重新编写您的答案,以使其清楚地明确您的答案是什么,而不是依靠假设。
Seamus '18

还请注意,问问者正在运行无头的树莓派。这意味着未安装桌面环境,因此此键序列可能无济于事。
Hydraxan14
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.