2016-10-02 2 views
1

Я пытался запустить скрипт python при загрузке Rpi, но все, что я пробовал до сих пор, не работает.Скрипт python малины crontab при загрузке

Сценарий некоторые версии этого: 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, которые работают.

Нужна помощь!

+0

'crontab' может работать с различными привилегиями, в другой среде и в другой папке - вы, возможно, придется использовать полный путь для создаваемого файла. – furas

+0

Попробуйте абсолютный путь к файлу. –

ответ

-1

Вы можете позвонить своему сценарию в файле ~/.bashrc. Он будет называться при загрузке или открытии терминала.

Просто написать:

python /path/to/your/script.py 

В конце файла .bashrc.

+0

Это не то, что он просит –

+0

«Я пытался запустить скрипт python при загрузке Rpi» -> да, именно это он и спросил. – acknowledge

+0

при загрузке, а не при открытии терминала –

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

Если ваш сценарий находится в /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 

Обратите внимание, что при редактировании кронтаб суперпользователя, процесс питон будет запускаться с правами администратора. Таким образом, вы должны использовать абсолютные имена файлов в сценарии питона:

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

Я не думал о добавлении абсолютного пути в самом скрипте, он работает сейчас. Благодаря ! – NyuengBo

Смежные вопросы