Eu tenho um aplicativo construído em C que usa fgets para ler comandos do usuário do stdin. Quero que meu sistema Linux embarcado inicie este aplicativo na inicialização e coloque o usuário no terminal deste aplicativo.
Posso iniciar o aplicativo na inicialização usando um script bash:
./my_app
mas o aplicativo não parece estar obtendo stdin do terminal do usuário.
Se eu esperar para fazer login no Linux e, em seguida, iniciar o aplicativo manualmente a partir do terminal, posso interagir com ele perfeitamente.
Existe alguma maneira de iniciar o programa automaticamente (como com um script de inicialização), mas depois passar o controle para o usuário, como se o próprio usuário tivesse iniciado o programa?
Responder1
Encontrei o que procurava:
exec ./my_app
substitui o terminal Linux normal pelo aplicativo. A desvantagem é que você não pode Ctrl + C voltar ao Linux, mas isso não é importante para mim, então isso dá conta do recado.