树莓派的主管停止记录到日志文件

时间:2017-12-19 15:44:56

标签: python raspberry-pi supervisord

我有一个温度传感器连接到我的rpi并运行python脚本。我可以从cli启动python脚本,它将运行输出temps直到我停止它。

#!/usr/bin/env python
import os

def sensor():
    for i in os.listdir('/sys/bus/w1/devices'):
        if i != 'w1_bus_master1':
            ds18b20 = i
return ds18b20

def read(ds18b20):
    location = '/sys/bus/w1/devices/' + ds18b20 + '/w1_slave'
    tfile = open(location)
    text = tfile.read()
    tfile.close()
    secondline = text.split("\n")[1]
    temperaturedata = secondline.split(" ")[9]
    temperature = float(temperaturedata[2:])
    celsius = temperature / 1000
    farenheit = (celsius * 1.8) + 32
    return celsius, farenheit

def loop(ds18b20):
    while True:
        if read(ds18b20) != None:
            print "Current temperature : %0.3f C" % read(ds18b20)[0]
            print "Current temperature : %0.3f F" % read(ds18b20)[1]

def kill():
    quit()

if __name__ == '__main__':
    try:
        serialNum = sensor()
        loop(serialNum)
    except KeyboardInterrupt:
        kill()

我已配置supervisor并运行临时配置。它在重新启动时启动并开始在文件中输出临时值,但最终会停止记录。我没有任何错误。

[supervisord]
nodaemon=true

[program:whelping-box-temp]
command=python /home/pi/workspace/my-donutz/whelping-box-temp-sensor.py
autostart=true
autorestart=true
stderr_logfile=/var/log/supervisor/whelping-box-temp.err.log
stdout_logfile=/var/log/supervisor/whelping-box-temp.out.log

我假设我不想继续记录到rpi上的文件,因为它最终会耗尽空间并随着时间的推移而降级。

Current temperature : 24.750 C
Current temperature : 76.662 F
Current temperature : 24.750 C
Current temperature : 76.662 F
Current temperature : 24.750 C
Current temperature : 76.662 F
Current temperature : 24.750 C
Current temperature : 76.550 F
Current temperature : 24.812 C
Current temperature : 76.662 F
Current temperature : 24.812 C
Current temperature : 76.662 F
Current temp

最后一行不是输入错误,输出似乎停止了。如果我删除日志文件并重新启动它将在下次执行相同的操作。

我是否应该采用另一种方式在rpi上配置主管,甚至根本不使用主管?为什么它会在一段时间后停止记录?最终我会让rpi做一些其他的事情,当temp在某个地方,但我希望能够登录并查看已经发生的事情的某种历史。在rpi上执行此操作的正确方法是什么?

0 个答案:

没有答案