gpt4 book ai didi

linux - 关闭 linux 然后关闭电源的正确方法是什么?

转载 作者:太空狗 更新时间:2023-10-29 11:22:08 24 4
gpt4 key购买 nike

我在带有外部电源的 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 被执行,其他任何东西都不会运行?

最佳答案

当我远程登录时,我关闭 linux box 的方法是简单地使用“poweroff”命令。然后系统正常关闭并最终自行关闭——仅此而已,正是我想要的。

关于linux - 关闭 linux 然后关闭电源的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25553357/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com