#python #raspberry-pi #crontab #boot
#python #raspberry-pi #cron #загрузка
Вопрос:
Я пытался запустить скрипт python при загрузке Rpi, но все, что я пробовал до сих пор, не сработало.
Сценарий представляет собой некоторую версию этого: 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)) " degreeCrn")
sleep(60)
log.close()
Он отлично работает сам по себе. Я попытался отредактировать crontab с абсолютным путем к Python и без него, а также отредактировать /etc/rc.local
Я знаю, что это не работает, потому что он должен создавать текстовый файл и редактировать его каждую минуту, и он не создается при загрузке. У меня есть другие команды в crontab и rc.local, которые работают.
Нужна помощь, пожалуйста!
Комментарии:
1.
crontab
может выполняться с разными привилегиями, в другой среде и в другой папке — возможно, вам потребуется использовать полный путь для созданного файла.2. Попробуйте указать абсолютный путь к файлу.
Ответ №1:
Если ваш скрипт находится в /home/pi/tempcheck.py
crontab, вам следует отредактировать crontab с помощью
sudo crontab -e
и добавьте строку
@reboot python /home/pi/tempcheck.py amp;
затем сохраните и выйдите.
Более подробную информацию можно найти по адресу http://www.raspberrypi-spy.co.uk/2013/07/running-a-python-script-at-boot-using-cron /
Вы можете проверить, что он запущен с помощью
ps aux | grep tempcheck.py
Обратите внимание, что если вы отредактируете crontab root, процесс python будет запущен от имени root. Поэтому вы должны использовать абсолютные имена файлов в скрипте python:
log=open("/home/pi/cpu_temp.txt","a")
Комментарии:
1. Я не думал о добавлении абсолютного пути в сам скрипт, сейчас он работает. Спасибо!
Ответ №2:
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
Ответ №3:
Вы можете вызвать свой скрипт в ~/.bashrc
файле. Он будет вызван при загрузке или открытии терминала.
Просто напишите :
python /path/to/your/script.py
В конце файла .bashrc.
Комментарии:
1. это не то, что он спрашивает
2. «Я пытался запустить скрипт python при загрузке Rpi» -> да, это именно то, что он спросил.
3. при загрузке, а не при открытии терминала