#1 楼
您可以使用shutdown -h now
安全地关闭pi -h仅停止所有进程
评论
在-r会重新启动(关机+重新启动)的同时,可能值得学习。
– XTL
2013年1月29日7:57
别忘了您必须是root用户才能关机或使用sudo。
–keiki
13年1月31日上午9:34
或者sudo poweroff
– Berto
15年7月13日在18:00
-h会停止整个系统-如果没有该选项,则关闭将使其进入运行级别1-即单用户模式,等待超级用户登录(需要root密码)。以root身份登录然后退出init之后,将重做将RPi设置为多用户模式所需的内容-就像在原始启动过程中所做的一样(在完成所有内容(例如fsck等)后运行) /etc/rc.local)。在这种情况下,“关机”是“使普通用户脱机”。
– SlySven
16年1月14日,下午4:06
是的,但是关闭实际上需要一些时间来执行,并且在它关闭时会断开所有ssh客户端的连接。那么,您如何知道何时安全(例如,卸下SD卡)?
–汤姆·俄格(Tom Auger)
17年11月22日在18:51
#2 楼
不要简单地拔掉电源线,因为这可能偶尔(可能经常)导致文件系统损坏。如Impluss所说,请使用
shutdown
。我最近遇到了有关配置udev以在拔出特定USB设备时触发关机或重新启动的提示。如果系统变得无响应或失去网络连接,并且您无法或不会费心插入诸如键盘之类的隐藏式(人机界面)设备,这将非常有用。稍微过时但写得很好的udev规则介绍| here |。基本思想是,您可以通过
lsusb
获得有关该设备的一些信息,例如:Bus 002 Device 003: ID 0bda:8176 Realtek Semiconductor Corp. RTL8188CUS 802.11n WLAN
标有ID的第三个字段是由冒号分隔的供应商和型号ID。假设您没有插入多个相同的设备,则此组合应该是唯一的。当我从上方拔出teenieweenie wifi加密狗时,它会弹出:
UDEV [2834.504860] remove /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.6 (usb)
ACTION=remove
[...]
ID_BUS=usb
ID_MODEL=802.11n_WLAN_Adapter
ID_MODEL_ENC=802.11n\x20WLAN\x20Adapter
ID_MODEL_ID=8176
[...]
ID_VENDOR=Realtek
ID_VENDOR_ENC=Realtek
ID_VENDOR_ID=0bda
注意ID_MODEL和ID_VENDOR字段。这些就是您要在udev规则中使用的内容。在线上有一些过时或不正确的来源建议使用ATTR字段,但这是与“删除”事件有关的ENV字段。
在
udevadm monitor --udev --property
中创建文件。无论分布如何,都是一样的。该文件必须以/etc/udev/rules.d
结尾,并且该目录中的所有文件均按字典顺序进行处理。我相信先前声明的规则优先,因此使用.rules
会将其保持在行的开头(数字在字母前排序)。在其中添加以下行:ACTION=="remove", ENV{ID_VENDOR_ID}=="0bda", ENV{ID_MODEL_ID}=="8176", RUN+="/sbin/shutdown -h now"
当心
00-my_pi.rules
而不是==
。如果使用更高版本,则该标准将毫无意义。在这种情况下,您可能会遇到与任何事件匹配的udev规则!确保已加载
=
。现在,当您拉出wifi加密狗时,pi应该干净地关闭...给它一分钟的时间,然后就可以拔掉电源(第一次连接屏幕时尝试一下)。您还可以使用它来重新引导-参见udevadm control --reload-rules
,实际上是此处提到的所有命令的手册页;)评论
我不认为这是OP的要求。但是+1的信息。
– Vincent P
13年1月29日在4:41
整齐!您当然也应该能够移除(或插入)任意USB设备来触发此操作
– Tobias Kienzler
13年1月29日在7:00
这是一个不错的开始。通过GPIO按钮触发关闭操作(通过某种方式使ACPI或HID事件发生这种事情?)或其他操作会更加方便。
– XTL
13年1月29日在7:56
@XTL:周围有apci守护程序,因此有可能(内核通过proc等报告)。至少对于pi上的gpio同样如此。 HID事件更具有上下文关系(示例上下文是GUI桌面环境),并且您可以键入“ halt”(在Linux上== shutdown -h)这一事实可能减轻了对此的需要;
–金锁♦
13年1月30日在8:03
这是完美的,加密狗是唯一插入Pi的东西,而且我们经常会断开连接,因此我们需要移动它,而不会因断电而损坏它。
– noio
13年6月23日在11:31
#3 楼
您可以发出以下命令来关闭:sudo init 0
并重新启动:
sudo init 6
评论
这在很大程度上取决于运行级别,而运行级别是操作系统仍在使用的概念。如今,向systemd的转移使这种方法的可用性降低了。
–斯蒂芬·迈克尔·凯拉特(Stephen Michael Kellat)
15年7月13日在3:16
不包括今天的编辑,您可能已经注意到这是一个很旧的答案。这个问题还存在两年以上。
–注册用户
15年7月13日在3:41
在这种用法中,最好使用sudo telinit#,其中#是0到6之间的数字-telinit是指向init的符号链接,该链接可以识别它不是由其主名称“ init”调用的(并且它没有PID为1! telinit是“告诉init新运行级别”的缩写。
– SlySven
16年1月14日在4:11
#4 楼
我的首选方法是使用sudo poweroff
,这是关闭命令的别名,它也可以减少电源使用。#5 楼
这个问题已经得到充分回答;我的喜好与已经回答的喜好不同。我首选的命令(以root身份或以sudo
开头):要暂停:
halt
(对于Wheezy和之前的命令,该命令也会关闭系统电源;对于Jessie,虽然安全,但实际上并未关闭电源完成后拔掉插头)。杰西需要halt -p
或简单地使用shutdown now -h
... 要重新启动:
poweroff
我更喜欢这些命令,因为它们简单明了,易于记忆和不言而喻。 。
评论
并不是要抱怨,但我认为我的答案(来自8个月前)被否决有点苛刻,因为Debian(即Raspbian的上游)改变了其命令的工作方式(假设这就是为什么我被否决了) 。同样,我的答案(在编辑之前)仍然可以回答OP(即,如果您停止系统,可以安全地拔下插头...)FWIW我已经更新了答案,因此很显然,它不再像用户可能的那样起作用。希望...
–杰里米·戴维斯(Jeremy Davis)
15年6月18日在4:50
您不应该养成使用停止或关闭电源的习惯,因为它们只是GNU工具现在关机-h的别名,但是在其他系统上,您将立即关闭系统电源,从而杀死所有程序并可能损坏文件系统。这就是说,您可以在大多数Linux发行版的树莓派pi上使用它,但是如果您使用pi进行学习,则可能需要“以正确的方式”进行。
– allo
16年7月3日在15:48
@allo-对于旧版Linux OS和其他非Linux Unix之类的OS(例如BSD)变体,您也很正确。但是在使用SystemD的最新Linux操作系统(即当今大多数Linux)中,情况并非如此。停止,关机,重新引导和关机都是与systemctl的符号链接(还传递了原始命令)。然后触发适当的SystemD目标: poweroff.target。 FWIW poweroff.target会触发ACPI调用以彻底关闭系统。因此,AFAIK在这一时代的电源关闭(或systemctl电源关闭)是“正确的方法”。 :)
–杰里米·戴维斯(Jeremy Davis)
18年11月16日在4:25
像在许多情况下使用linux一样,有多种方法可以做到这一点。但是您应该考虑是否不想以标准中描述的方式学习它,其他unix系统也遵循该方法。作为linux用户,对您没有什么好处,但是谁知道您将来何时会尝试其他系统?不要依赖暂停,也不要依赖rm来具有--no-preserve-root标志。不要依赖/ bin / sh是/ bin / bash(对于基于debian的系统来说,甚至不再是这样)。尝试使用“正确”的方法通常很有用,即使当前它可以以其他方式起作用。
– allo
18年11月16日在9:13
@allo-公平的观点,我认为分享您对不同系统的知识真是太棒了,并且我同意,当然值得注意系统之间的差异和相关限制。尽管我不同意您的建议,即您的方式是“正确”的方式。这可能是“符合posix的”方式,但并没有使“正确”和“错误”成为另一种方式。例如。使用bash(和bashisms)是完全合法的IMO,尽管我同意如果您需要/想要bash,则应明确使用/ bin / bash。仅供参考,我的观点非常以Debian为中心...
–杰里米·戴维斯(Jeremy Davis)
18年11月17日在0:18
#6 楼
只需投入一下,如果您要添加一些硬件,则可以编写一个小的守护程序来轮询GPIO引脚,并在确定某个引脚后,重新启动(或关闭)Pi。此外,这里提到的所有命令都可以通过SSH运行。
#7 楼
我知道最初的问题已经过去三年了。但是我刚拿到Raspberry Pi,如果忘记将它连接到监视器屏幕并且没有任何网络连接,则无法关闭它。我编写了一个小的Python脚本,通过插入包含名为“ pi_auto_shutdown”的文件的Thumbdrive,在60秒内自动将其关闭。 .local。
希望对您有所帮助。
评论
有趣的方法。
–埃里克·威尔逊(Eric Wilson)
16年7月3日在18:02
#8 楼
我使用命令ssh进入RPi框$ ssh rpi sudo poweroffrpi是RPi框IP地址的别名并在〜/ .ssh / config文件中定义。
评论
关闭电源是关闭电源的最佳方法poweroff可能是停止的象征性链接...! 8-)