Запустите скрипт на переднем плане на загрузке 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

Другие вопросы по тегам