【问题标题】:Fast system shutdown in PythonPython中的快速系统关闭
【发布时间】:2017-09-16 00:57:43
【问题描述】:

我正在设计一种电子硬件,如果出现机械故障(例如密封破损),它可能会与水接触。在设备内部,我在所有关键区域周围都有湿度传感器。我已经编写了一个脚本来监控这些湿度传感器,但我想编写一个紧急脚本,如果任何湿度传感器检测到水,系统可以快速关闭以避免对设备本身和任何人/任何东西造成电气损坏附近。

目前,我只能找到以下协议:

import os
os.system('shutdown -P now')

有没有一种简单的方法可以让计算机“硬”关机?

我还考虑过通过计算机可以控制的继电器向设备供电,这样我就可以物理地切断计算机的电源,但我希望有一种方法可以做到这一点而不必使用这种重型功率继电器。

【问题讨论】:

  • 你的意思是现在关闭 -h
  • 假设这是 Linux,您可能想使用poweroff -f。更好的是,找到该实用程序的源代码并弄清楚如何直接从 Python 调用系统调用...
  • 感谢您的快速回复! -P、-h 和 power off -f 之间有什么区别?我对硬件应用程序的 python 编码非常陌生,所以我的知识非常有限。
  • 运行脚本后电脑会关机吗?如果没有,您将需要 sudo 权限才能运行它。
  • @mwweb,是的,系统确实关闭了。该脚本以正确的权限运行。我只是想知道在紧急情况下是否有更快的关闭方法。

标签: python shutdown system-shutdown


【解决方案1】:

使用系统请求 (SysRq) 并调用 echo b > /proc/sysrq-trigger 立即重新启动系统,无需卸载或同步文件系统。

import os

os.system('echo 1 > /proc/sys/kernel/sysrq && echo b > /proc/sysrq-trigger')

查看此答案了解更多信息:

https://unix.stackexchange.com/questions/163370/is-there-a-fastest-way-to-shutdown-the-system

【讨论】:

    【解决方案2】:

    试试这个:

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

    【讨论】:

    • -h 表示“硬关机”吗?
    • 表示关机和停止,通过now会立即关机。 See this post,希望对您有所帮助。
    • 您是否尝试过在封闭环境中使用虚拟软件或类似的东西进行一些虚拟测试?
    • 谢谢@Abe!那篇文章很有帮助。是的,我有一个我一直在测试的虚拟机,我当前的代码可以运行并关闭系统。我还在要使用的实际设备上对此进行了测试。它工作得很好,但我想要最快的选项,因为我希望在紧急情况下使用这个特定的代码。我想我可以为所有选项计时并找到最快的选项,但我希望在我做这一切之前有一个明显的解决方案。
    猜你喜欢
    • 2014-05-06
    • 1970-01-01
    • 1970-01-01
    • 2022-01-23
    • 1970-01-01
    • 2021-08-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-07
    相关资源
    最近更新 更多