什么是关闭Linux然后杀死电源的正确方法?

时间:2014-08-28 16:09:59

标签: linux raspberry-pi shutdown

我在带有外部电源的raspberrypi板上运行Linux raspberrypi 3.6.11+。电源"关闭"通过GPIO控制开关。

我想做一个" shutdown -h -P now",等待系统关闭(停止),然后通过运行程序(killpower)来切断电源以切换适当的gpio引脚。我的主要目标是确保文件系统处于一种状态,当电源被移除时它不会被破坏。

我试图利用运行级别1脚本killproc,它将SIGTERM(和SIGKILL)发送到每个正在运行的进程。我写了killpower来捕获SIGTERM,等待20秒,然后发送gpio powerkill序列。我还将killproc脚本修改为NOT SIGKILL我的killpower pid,即使它在SIGTERM超时后仍在运行。

当这不起作用时,我发现在killproc运行后,/ init.d / halt SCRIPT运行,调用/ sbin / halt。 / sbin / halt也用SIGKILL杀死所有进程,所以我希望我的killpower proc在20秒之前被杀死。现在,我不知道这种方法是如何运作的。

我还看到init可以对SIGPWR信号起作用(不推荐),但它可以执行powerwait / powerfail。此时系统是否处于断电状态?我似乎无法找出这些程序应该实现的目标。

我考虑过在init.d中安装另一个关闭脚本,但是我对它应该运行的级别感到困惑"停止"在(等级1或等级0)。

是否可以在关闭命令执行/ sbin / halt之前终止电源?我是否正确一旦/ sbin / halt被执行,其他任何东西都不会运行?

1 个答案:

答案 0 :(得分:0)

当我远程登录时,我关闭linux盒子的方法是简单地使用“电源关闭”#39;命令。然后系统正常关闭并最终关闭 - 仅此而已,正是我想要的。