【问题标题】:Initiating system restart from kernel space从内核空间启动系统重启
【发布时间】:2014-07-31 20:04:51
【问题描述】:

我有一个运行 linux 的定制嵌入式板,驱动程序中有一个中断,监控它的 24V 电源。如果源发生故障,电池电源将接管并触发 IRQ。我想在电池运行 30 秒后启动重新启动,这样可以正常关闭电路板。

目前

emergency_sync();
kernel_restart(NULL);

确实有效,但它只是在调用 kernel_restart 大约半分钟后突然关闭系统。没有重新启动的通知,系统似乎正常运行,直到它发生。我可以启动一个“init 6”或者重启一个通知,以某种很好的方式从内核空间有序地关闭所有东西(比如在命令行上运行重启)?

【问题讨论】:

    标签: linux-kernel driver reboot


    【解决方案1】:

    我认为函数 ctrl_alt_del() 可以满足您的需求。它向init 发送一个信号以开始正常的重启序列。

    【讨论】:

    • 这在 inittab 中添加一个子句以捕获 ctrl_alt_del 并执行重新启动后起作用。干杯。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-10-27
    • 1970-01-01
    • 1970-01-01
    • 2016-02-25
    • 1970-01-01
    • 2018-11-29
    • 2022-08-03
    相关资源
    最近更新 更多