如果您在某个位置有一个树莓并且必须“永远”运行python脚本(一年,也许是两个,而我不在该位置),我应该多久重启一次?我知道人们可以让它们存活一年以上,但是我编写了一个简单的脚本,可以在给定的时间重新启动它,而raspberry会在启动时自动运行python脚本。

评论

如果不需要,为什么要重启?例如,有时可能需要重新引导才能进行系统升级。但是,如果这不是自动的,我将不会重启。重新启动无法避免系统无法成功重新启动的风险。

我24/7全天候运行的设备目前的正常运行时间为67天,这可能并不罕见。我只是出于某种目的重启它。正如史蒂夫所说,为什么没有任何目的?

在IT支持的背景下,您大概是说“有90%”的问题会帮助重启。您不会随意召集客户并告诉他们立即重启,以防万一;)

在Arch上进行24/7数据记录,当前正常运行时间为260 d。通常重新启动会导致麻烦;)

只需检查您的日志和其他增长文件:logrotate即可。 SD卡在重载磁盘活动方面的寿命有限,可能移动/ root来使用外部旋转驱动器。我添加了一个与cron同步闪烁的led指示灯和一个红色,当磁盘空间不足时该指示灯点亮,而另一个在某些安全日志信息上点亮,将rsyslog最小化。

#1 楼

我有几个Pis运行我的Ham Radio中继器和灌溉系统-实际上,出于安全更新或其他“维护”的原因,我可能每6个月重新启动一次。但我没有看到需要重新启动才能“保持运行状态”的问题

#2 楼

在硬件方面,您唯一需要重启ARMHF-y板的原因是固件更改,对ROM的必要更改或可能在引导时必须存在的新设备。

例如,添加驱动程序或接近金属的内核模块以及实现该驱动程序的设备可能需要重新启动,只是告诉CPU和内核内存映射器有关更改。您可以在不重启的情况下更新Linux内核。

就软件而言,Pi可用的所有主要计算环境都是* nix-like1,因为它们是True Unix™或它们使用Linux或Linux派生产品,因此是(U)nix-y。

Unix及其派生产品从引导加载程序到用户领域的设计都具有完全可伸缩性,可移植性和可靠性。它们是为从未或几乎不会进行硬重置(也就是完全关闭并从头开始冷启动)的服务器而设计的,并且在较小程度上是为与Raspberry Pis一样的嵌入式设备设计的。因此,这些目标确实适用于Pi。

这意味着实际上,您基本上不需要重新启动Pi(或者重新启动* nix台式机)。


1暂时忽略Pi的Microsoft Windows 10:Internet Of Things Edition,我希望成为一个实用的玩笑,但事实并非如此。

评论


谢谢您的2c,它对您有很大帮助,现在我确定我永远不会重新启动PI。

– Rok Dolinar
16年1月7日,0:57

如果硬件未更改,则内核/设备模块升级是需要重新启动的唯一可能原因-如果我正确理解这些天,可以在不重新启动的情况下更改模块。

– SlySven
16年1月7日,下午2:17

@SlySven您可以在不重新启动的情况下更改模块,只是不要依赖于它们具有完全正常的功能和无损的功能

–猫
16年1月7日,下午2:22

每月重新启动一次NT?你怎么想出来的?

– bot47
16年1月7日,下午5:35

@ pjc50哇,没意识到有更多的最新版本。虽然我错了,但我知道Win10 IoT与Win10是同一核心,而不是CE :)

–马修·斯蒂夫斯(Matthew Steeples)
16年1月7日在16:04

#3 楼

对于嵌入式“永远运行”系统,不需要定期重新启动。通常使用硬件看门狗定时器来检测系统挂起和重启。我相信看门狗计时器比定期重新启动更有价值(如果系统挂起,重新启动可能无法工作)。

#4 楼

我同意以前写的东西。从理论上讲,使用编写出色的软件并具有完美的错误处理功能,没有内存泄漏...,无需重新启动。

我在现场拥有50多个PI(所有PI 3),有的每周更新一次,而其他的则从来没有...
几乎所有的PI都在信息亭模式下使用,无论是播放视频,显示网站,运行脚本,...用户体验对我都很重要,我可以不能让PI失败。我的所有设备上都装有看门狗。

在我的网站上,我使用的是以下方法(这仅是基于我的经验,没有科学背景:-))
<可以运行服务器(Apache,SIP等)的PI,仅通过以太网电缆连接:我从不重新启动它们,其中一些具有将近2年的正常运行时间(实际上,我没有相反,运行视频循环的PI(使用OMXPlayer):我每周重新启动这些设备。我试图完全不重新启动它们,但是我发现有时视频挂起甚至没有看门狗。因此,人们会在屏幕上看到静止图像。我想说,在一个月的时间内,每种设备大约有50%的机会冻结视频一次,
为了最大限度地减少这些风险,我决定每周重启一次,结果可以接受:到目前为止,在每周重新启动一年之后,我只有2次冻结(映像冻结,没有PI冻结)。当然,我也希望消除这些问题,但这是另一个话题。
对于那些问题,我并不关心重新启动对SD卡的影响,因为如果发生这种情况,它会只需放置一张新的SD卡并使用正确的视频更新模板。
PI处于客户端模式,并通过用户交互(主要是触摸屏和/或按钮)显示基于Web的用户内容(使用Chromium,KWeb等):我每月重启一次,到目前为止还没有任何问题。也许不需要重启它们...但是鉴于那些设备运行脚本(Java,Node.js)并从其他设备获取输入,我认为在某个时候可能需要重启,所以我决定每月进行一次重启重新启动。

我意识到这并不能直接回答您的问题,但我只是想分享一些个人经验,因此您可以与其他答案一起判断哪种方法最适合您的项目会的。