Eu tenho esse caso de uso exato (raspi com leitor de RFID que emula um teclado USB).
Eu resolvi o problema criando uma nova unidade systemd para iniciar meu script em uma tela (para que eu possa ver o que está acontecendo, espelhando a sessão via ssh).
1.
Crie /etc/systemd/system/my-tty1.service
:
[Unit]
Description=my tty1-service
After=getty.target
[email protected]
[Service]
Type=simple
ExecStart=/usr/bin/screen -S myTTY1 /path/to/my/script
StandardInput=tty-force
StandardOutput=inherit
StandardError=inherit
[Install]
WantedBy=multi-user.target
Isso inicia seu script (ou programa) para manipular a entrada em uma sessão de tela chamada myTTY1.
2.
Ative o serviço para que ele seja iniciado após a inicialização:
systemctl enable my-tty1.service
3.
Pare o getty, inicie o seu serviço:
systemctl stop [email protected]
systemctl start my-tty1.service
4.
Agora você pode se conectar à sua sessão de tela com screen -x myTTY1
via ssh. Desconecte separando a tela com CTRL+A
, seguido por D
.