关闭后5分钟如何重启Raspberry Pi? - python

我想要一个简单的脚本,在使用Python以编程方式自愿关闭后5分钟,重新启动raspberry pi本身。我的脚本会立即重新启动。

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

我该如何实现?

参考方案

心甘情愿!

关机后如何继续工作?

好的,这是一个奇怪的问题,因为似乎很清楚,系统一旦停机就无法工作...。

可编程系统时钟可以在定义的时间唤醒系统。不幸的是,树莓派没有这种内置的计时器系统。
第二种方式:停止所有cpu加热服务。

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

在Un * x下,以单用户模式切换时,系统不执行任何操作(无论如何都可能会运行raid同步...如果raspberry pi上没有raid,您可能需要在意,也许要停止raid,wifi和/或卸载一些模块,然后进入睡眠状态,然后重新启动)。
第三种方式:电气切断电源,继电器默认放电。

您可以创建一个带有一个小电池和一个5V继电器的小模块,以切断电源(通电时)。当电池电量耗尽或有一个小计时器时,您可以释放继电器,然后重新通电...

停止所有服务并在5'之后重启

您可以做一件事:

免责声明:这只是一个解决方案,因为我现在没有免费的raspi来进行测试,因为这取决于distrib和版本!您必须先了解自己的工作,然后再修改其中的一部分!

了解运行级别的工作方式

运行级别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

用于运行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'

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

也可以通过在运行级别之间切换来完成。您必须将Rulevel 2配置为4,才能停止先前定义的所有服务。 Juste关心服务cron不会停止。

Python sqlite3数据库已锁定 - python

我在Windows上使用Python 3和sqlite3。我正在开发一个使用数据库存储联系人的小型应用程序。我注意到,如果应用程序被强制关闭(通过错误或通过任务管理器结束),则会收到sqlite3错误(sqlite3.OperationalError:数据库已锁定)。我想这是因为在应用程序关闭之前,我没有正确关闭数据库连接。我已经试过了: connectio…

Python pytz时区函数返回的时区为9分钟 - python

由于某些原因,我无法从以下代码中找出原因:>>> from pytz import timezone >>> timezone('America/Chicago') 我得到:<DstTzInfo 'America/Chicago' LMT-1 day, 18:09:00 STD…

用大写字母拆分字符串,但忽略AAA Python Regex - python

我的正则表达式:vendor = "MyNameIsJoe. I'mWorkerInAAAinc." ven = re.split(r'(?<=[a-z])[A-Z]|[A-Z](?=[a-z])', vendor) 以大写字母分割字符串,例如:'我的名字是乔。 I'mWorkerInAAAinc”变成…

如何打印浮点数的全精度[Python] - python

我编写了以下函数,其中传递了x,y的值:def check(x, y): print(type(x)) print(type(y)) print(x) print(y) if x == y: print "Yes" 现在当我打电话check(1.00000000000000001, 1.0000000000000002)它正在打印:<…

Python:如何根据另一列元素明智地查找一列中的空单元格计数? - python

df = pd.DataFrame({'user': ['Bob', 'Jane', 'Alice','Jane', 'Alice','Bob', 'Alice'], 'income…