【问题标题】:Python script to restart a Raspberry Pi用于重启树莓派的 Python 脚本
【发布时间】:2020-08-13 20:26:48
【问题描述】:

我认为我想要的是直截了当的。

在 23 小时 59 分钟后重新启动我的 Raspberry Pi 的 Python 脚本。我之所以尝试这样做,而不是使用 cron 作业设置时间,是因为 Pi 没有用于时钟的板载电池,所以我不在乎时间是什么(如果连接到互联网,它将获取当前时间) ,距离脚本开始倒计时 23 小时 59 分钟。

这是我所知道的;

def restart():
SendEmail = SendEmail "SYSTEM RESTART", "ncam.py auto restart initiated"      msg['Subject'], body)
command = "/usr/bin/sudo /sbin/shutdown -r now"
process = subprocess.Popen(command.split(), stdout=subprocess.PIPE)
output = process.communicate()[0]

我也想给自己发一封邮件,上面设置的参数。

【问题讨论】:

  • 想想为什么不创建一个 cron 作业(或类似的)并执行一个 python 命令来重启你的 Pi?否则(如下所示)你必须让 python 保持循环,我不确定运行该脚本会占用多少 CPU/内存。
  • 为什么不使用带有sleep $nearly_a_day; reboot; 的shell 脚本?

标签: raspberry-pi


【解决方案1】:

你会想要这个的一些变体:

 import time
 import os
 currentTime = time.time()
 tomorrow = currentTime + 86340000
 while time.time() < tomorrow:
     do.yourCode()
    
 os.system("poweroff")

在你的函数中加入类似的东西,它就会做你想做的事。

【讨论】:

【解决方案2】:

你应该改成

while time.time() < tomorrow

避免任何潜在的“错过”精确的毫秒匹配。

【讨论】:

  • 虽然你是对的(我必须承认我也是这么想的),但这看起来像是对stmfunk's answer的评论
【解决方案3】:

您可以简单地使用“sudo reboot”命令重新启动树莓派。 只需将此命令放在 python 代码中并将其作为系统命令运行即可。例如此代码在重启前从 1 倒数到 10:

import time
import os
for i in range(1,10):
       print 'hello',i
       #Do your code here
       time.sleep(1)
os.system("sudo reboot")

使用此方法倒计时并重新启动pi。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-06
    • 1970-01-01
    • 2021-03-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多