gpt4 book ai didi

python - 如何在关机后 5 分钟重新启动树莓派?

转载 作者:太空宇宙 更新时间:2023-11-04 06:00:03 24 4
gpt4 key购买 nike

我想要一个简单的脚本,可以在使用 python 以编程方式自愿关闭后 5 分钟重新启动树莓派本身。我的脚本只是立即重新启动它。

if temp > 70:
os.system("sudo reboot")

我怎样才能实现这一目标?

最佳答案

只要有心,没有什么是不可能的!

关机后如何继续工作?

好吧,这是一个奇怪的问题,因为这似乎很明显,系统一旦宕机就无法工作......

但是

  • 可编程系统时钟可以在定义的时间唤醒系统。不幸的是,树莓派没有这种板载定时器系统。

    但是有一些示例/模块:

  • 第二种方法:停止所有CPU加热服务。

    如果没有完全关闭,没有任何服务运行的系统会变得安静足以冷却。

    Un*x下,当切换到单用户模式时,系统不会执行任何操作(无论如何,某些raid同步都可以运行...如果树莓派上没有raid,您可能需要小心,也许停止raid,wifi和/或卸载一些模块,然后在 sleep 然后重新启动)。

  • 第三种方式:通过放电默认打开继电器来切断电源。

    您可以创建一个小模块,其中包含一个小电池或电容器和一个 5V 继电器来切断电源(通电时)。当电池/电容耗尽时,或者用一个小定时器,你可以释放继电器,然后电源回来......

停止所有服务并在 5 分钟后重新启动

你可以做一件事:

免责声明:这只是一个近似的解决方案,因为我现在没有免费的 raspi 来进行测试,并且因为这取决于发行版和版本!您必须理解您所做的事情,然后调整其中的某些部分!

  • 了解运行级别如何工作

    • 运行级别 1 是单用户模式
    • ...网络模式...
    • 运行级别 5 是默认的普通模式
  • 复制/etc/rc1.d/一些未使用的/etc/rc[2..4].d/ (保存后)

    mv /etc/rc2.d /etc/rc2.d-old
    cp -a /etc/rc1.d /etc/rc2.d

    记下用于运行的符号链接(symbolic link)数量 single脚本

    ls /etc/rc2.d/S*single
    lrwxrwxrwx 1 root root 16 jun 19 18:04 /etc/rc2.d/S32single -> ../init.d/single

    丢掉它们

    rm /etc/rc2.d/S32single

    创建您自己的/etc/init.d/rebootIn5 ,通过复制骨架

    cp /etc/init.d/skeleton /etc/init.d/rebootIn5

    编辑它们使 start函数包含类似的内容

    nohup sh -c 'sleep $((5*60)) ; reboot' &

    也许init 5而不是reboot ,并检查术语值 while (( $(</sys/.../therm_input) > 50 ));do sleep 20;done而不是sleep 300 ...

    然后将它们链接到

    ln -s ../init.d/rebootIn5 rc2.d/S32rebootIn5
  • 通过您的脚本调用它:

    if temp > 70:
    os.system("sudo init 2")

另请参阅...

可以更简单地检查哪些服务正在加热您的系统。(命令 top 可以提供快速概述)

top -bn 1 | sed '/^ *PID USER/,+1{//d;p};d'

然后仅停止并重新启动一个或几个服务...

这也可以通过在运行级别之间切换来完成。您必须配置规则级别 24停止您之前定义的所有服务。只需注意服务 cron 不会停止。

关于python - 如何在关机后 5 分钟重新启动树莓派?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47382359/

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