Запустите скрипт на переднем плане на загрузке Raspberry Pi
У меня есть скрипт для запуска при загрузке, и я хотел бы использовать клавиатуру для взаимодействия со скриптом. Я успешно настроил это для запуска в crontab; однако сценарий выполняется в фоновом режиме, и я не могу использовать клавиатуру для взаимодействия со сценарием. Вот упрощенный пример скрипта:
def write_to_txt(item_to_write):
with open("my_txt_file.txt", "a") as myfile:
myfile.write('\n'+str(item_to_write))
while True:
keys_to_enter = raw_input()
write_to_txt(keys_to_enter)
Пожалуйста, кто-нибудь может указать мне правильное направление?
3 ответа
Я узнал, как запустить скрипт при загрузке и позволить клавиатуре взаимодействовать с программой. К файлу ~/.bashrc я добавил:
sudo python /home/pi/example.py
Вы можете запустить скрипт на переднем плане при загрузке, добавив строку в /etc/rc.local
Это работает по моему опыту, в частности, если Raspberry pi настроен на ожидание доступности сети при загрузке
Если я правильно понимаю, вы хотите, чтобы ваша программа прикрепляла свой stdin к tty1? Т.е. терминал, который вы видите на экране, если у вас подключен дисплей - это где по умолчанию ввод с клавиатуры заканчивался бы, если X windows не установлен или tty не переключается с помощью Ctrl+Alt+Fx?
Можно ли переместить владение фоновым процессом сценария в оболочку на tty1? Если это так, то самым простым может быть автоматический вход в систему Pi (или пользователю нужно будет войти в систему с клавиатуры при запуске). Затем автоматически запустите программу на tty1, чтобы ее стандартный вывод был связан с tty1.
Я думаю, что для достижения последнего вы можете поместить его вызов в один из сценариев запуска bash, что-то вроде того, что предлагается здесь: https://www.raspberrypi.org/forums/viewtopic.php?f=29&t=7192