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

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

评论

目前暂时无法使用,但是您可以在GPIO引脚上添加一个按钮,以在将来将其正确关闭

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

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

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

#1 楼

尽管应该将其视为最后的选择,因为它确实会增加文件系统损坏的风险,但是如果绿色ACT指示灯没有频繁闪烁,则拔掉电源线通常是可以的。 SD卡上的/ O活动。如果关闭,则很可能系统处于空闲状态。这不一定是正确的,但是杀死一个忙于CPU密集型活动(而不是I / O)的系统从本质上来说并不是问题。操作系统确实在内存中缓存了文件系统信息,这意味着它可能与SD卡上的实际存储不同步,但是至少应该每隔几秒钟处理一次(您有时可以从ACT推断出这种模式

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

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

评论


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

– Peter Cordes
16-12-29在3:17



#2 楼

Magic SysRq密钥

这应该让您入门。


Magic SysRq密钥是Linux
内核理解的密钥组合,它允许用户可以执行各种低级命令
,而不管系统的状态如何。它通常用于恢复冻结或在不破坏文件系统的情况下重新启动计算机。
其效果类似于计算机的硬件重置按钮(或
电源开关),但还有更多功能选项和更多控制权。


您可以插入键盘,并在百叶窗中键入此内容(没有监视器。)

没有文件系统损坏,没有多余的东西需要硬件。


GPIO按钮

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

有很多在线的GPIO编程教程,您可以像这样修改。
Rahul R Dhobi有一个很好的两层python脚本,它将关闭Raspberry Pi:


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


以root权限执行脚本。


评论


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

– Peter Cordes
16-12-29 at 3:19

#3 楼

无需猜测;只需插入键盘并键入,然后按Enter键即可。

评论


您必须先(盲)登录,然后使用特权帐户或(假设Raspbian具有超强能力的pi用户...)在sudo之前添加。

–金锁♦
16-12-29在7:54



@goldilocks:您可能想将sudo放在命令的开头,而不是附加它:-)

–psmears
16 Dec 29'在10:08

@goldilocks:没错,登录似乎不那么麻烦。

–轨道轻度竞赛
16 Dec 29'在12:38

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

–金锁♦
16-12-29在14:45

@goldilocks:足够公平:)

–轨道轻度竞赛
16 Dec 29'在14:52

#4 楼

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

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

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

#5 楼

遇到同一问题时,我正在房屋的一部分中测试文件服务器,而无法轻松访问监视器。假设您的pi正在引导到默认的GUI环境,以下对我有用:


插入键盘(如果尚未完成)。一个“运行”对话框。

键入以下内容,然后按Enter键以启动“终端”窗口:请注意,然后键入以下内容:

lxterminal


按Enter。

这应该关闭Pi。如果工作正常,键盘指示灯将点亮,并且所有连接的USB设备都将关闭。如果不是,则可以重复上述步骤,以防输入命令时出错。

#6 楼

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

评论


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

– Seamus
18年7月23日在16:14

还请注意,问问者正在运行无头的树莓派。这意味着未安装桌面环境,因此此键序列可能无济于事。

–Hydraxan14
18年8月26日在4:12



我也无脑运行,但是如果这确实可行,我将很高兴安装桌面环境。那么这确实是一个非常简单的方法,只有警告是如果GUI被冻结,它将无法正常工作

–罗兰
20年5月5日11:00