启动时覆盆子crontab python脚本

时间:2016-10-02 09:55:16

标签: python raspberry-pi crontab boot

我一直试图在Rpi启动时启动一个python脚本,但到目前为止我尝试过的所有内容都不起作用。

脚本是此版本的一部分:https://www.raspberrypi.org/learning/temperature-log/worksheet/

#!/usr/bin/python
import os, sys
from subprocess import check_output
from re import findall
from time import sleep, strftime, time

def get_temp():
    temp = check_output(["vcgencmd","measure_temp"]).decode("UTF-8")
    temp = float(findall("\d+\.\d+",temp)[0])
    return(temp)

while True:
    log=open("cpu_temp.txt","a")
    temp = get_temp()
    log.write("{0} {1}".format(strftime("%Y-%m-%d %H:%M:%S"),str(temp))+" degreeC\r\n")
    sleep(60)  
    log.close()

它本身可以正常工作。我尝试编辑crontab,有和没有Python的绝对路径,以及编辑/etc/rc.local

我知道它不起作用,因为它应该创建一个文本文件并每分钟编辑一次,并且它不是在启动时创建的。我在crontab和rc.local中有其他命令正常工作。

需要一些帮助!

3 个答案:

答案 0 :(得分:1)

如果您的脚本位于/home/pi/tempcheck.py,则应使用

编辑crontab
sudo crontab -e

并附加行

@reboot python /home/pi/tempcheck.py &

然后保存并退出。

有关详细信息,请访问http://www.raspberrypi-spy.co.uk/2013/07/running-a-python-script-at-boot-using-cron/

您可以使用

检查它是否正在运行
ps aux | grep tempcheck.py

请注意,如果编辑root的crontab,python进程将以root身份运行。所以你应该在python脚本中使用绝对文件名:

log=open("/home/pi/cpu_temp.txt","a")

答案 1 :(得分:0)

sudo crontab -e

@reboot /usr/bin/python /path/to/file/script.py

/path/to/file/script.py可能类似于/home/username/script.py

如果仍然无效,您可以尝试使用此权限授予执行权限:

chmod a+x script.py

答案 2 :(得分:-1)

您可以在~/.bashrc文件中调用您的脚本。它将在启动或终端开启时调用。

只需写下:

python /path/to/your/script.py

在.bashrc文件的末尾。