Raspberry Pi не запускает скрипт Python, ожидая ввода сразу после запуска
У меня проблема с запуском скрипта Python сразу после запуска Raspberry Pi. Я пробовал с init.d, rc.local и cron. Ни один способ не сработал.
Мой скрипт ожидает ввода и сохраняет его в файл:
import datetime
path = '/my/path/to/file.csv'
while 1:
name = input()
date = datetime.datetime.now().strftime('%Y-%m-%d %H-%M-%S')
presence = str(name) + ";" + str(date) + '\n'
print(presence)
file = open(path, "a+")
file.write(presence)
file.close()
Как я могу запустить его после запуска и скрипт будет все время ждать ввода.
Крон:
sudo crontab -e
@reboot python /home/pi/Desktop/myscript.py
rc.local:
python /home/pi/Desktop/myscript.py
1 ответ
Обратите внимание, что input()
читает со стандартного ввода. Программа, запущенная из init.d, rc.local или cron, будет открывать стандартный ввод в / dev / null. Что значит input()
поднимет EOFError. Также, input()
излагает строчку, которую читает. Что, вероятно, не то, что вы хотите. Таким образом, у вас есть как минимум две проблемы с вашим кодом.
Я не могу предоставить решение, потому что вы не предоставили достаточно информации. Что вы имеете в виду "все время ждать ввода"? Вход откуда? Если ввод производит непрерывный поток данных, вы действительно хотите тело вашего while
цикл работает так быстро, как он может выполнить? Сказав, что вы, вероятно, хотите заменить input()
с простым sys.stdin.readline()
чтобы избежать неявного eval()
,