首页 文章

启动时覆盆子crontab python脚本

提问于
浏览
1

我一直在尝试在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()

它本身很好用 . 我尝试使用和不使用Python的绝对路径编辑crontab,以及编辑/etc/rc.local

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

需要一些帮助!

3 回答

  • 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")
    
  • 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
    
  • -1

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

    写吧 :

    python /path/to/your/script.py
    

    在.bashrc文件的末尾 .

相关问题