Usando ncurses para GUI básica em um processo iniciado dentro de um script de inicialização

1

Eu tenho um aplicativo escrito personalizado que é executado em uma configuração incorporada (buildroot). Meu aplicativo tem que ser executado toda vez que o dispositivo de destino é inicializado e, portanto, eu escrevi um script de inicialização para fazer isso e funciona bem. No entanto, parte do aplicativo tem uma 'GUI' muito básica escrita com ncurses. O problema que tenho é que ele funciona bem quando eu logar diretamente ou por cima do ssh, mas quando o binário é iniciado através do init, eu não consigo acessar a funcionalidade do código do ncurses. Eu presumo que isso é porque o console que eu estou logado não é o mesmo que o console que inicia o binário. Então, minha pergunta é que aplicativos / daemons têm um console associado e, em caso afirmativo, existe alguma maneira de transferi-lo para outro console?

Se não há outras maneiras que eu poderia resolver esse problema? Eu estava pensando talvez impingir um login automatizado e, em seguida, obter o aplicativo para iniciar através do console de login para que quando um monitor é anexado ao dispositivo, pelo menos, a GUI estará acessível.

Ou existe uma maneira melhor?

    
por mathematician1975 31.07.2013 / 16:10

1 resposta

3

Não tenho certeza se entendi o seu problema. Eu suponho que seu aplicativo inicie algum tipo de curses GUI e você deseja efetuar login remotamente e - de alguma forma - conectar-se a essa GUI (mas o aplicativo já está em execução).

Sugiro usar a tela ( link ) para iniciar o aplicativo em uma 'tela' desanexada (na verdade, um pseudo tty com um emulador de terminal simples). Em seguida, após o login, o (s) usuário (s) pode (m) usar a tela '-D -r' ou suas variações para anexar à tela virtual.

Isso seria o que você chamaria de "transferir para outro console"

PS: Outra maneira de fazer isso "certo" seria separar o serviço (a parte que está sempre em execução) e a interface do usuário em dois processos separados. Pode ser muito trabalhoso, pois requer inventar algum tipo de IPC entre esses dois processos.

    
por 31.07.2013 / 17:28