Eu escrevi o aplicativo java que lê a entrada do teclado e faz algum outro trabalho também. Como posso executar esse aplicativo em segundo plano e fazê-lo ler a entrada do teclado em segundo plano no Linux?
Respostas:
0 para resposta № 1Um processo só pode ler a entrada do teclado sejanela do terminal / interface do usuário / etc. tem o foco. O que você pode fazer, por exemplo se você possui direitos de acesso apropriados no servidor, é necessário que o aplicativo Java seja lido de um soquete e envie dados para esse soquete a partir do teclado.
Por exemplo.
em um tty:
$ socket -sl 11555
em outro tty:
$ nc 0 11555 | yourjavabinary
Agora, o que você digitar no primeiro tty, seu aplicativo Java receberá como entrada.
0 para resposta № 2
Eu não acho que é possível ler eventos do teclado se o seu aplicativo java estiver fora de foco. Você pode usar alguns componentes JNI e invocá-lo a partir do seu java.
0 para resposta № 3
Você quer dizer fundo em uma concha? Ou experiência em um gerenciador de janelas?
Para um shell, você pode tentar algo com o programa script (1). Ele lança um novo shell e captura todas as entradas e saídas em um arquivo. Você teria que descobrir quais linhas são a entrada.
http://man7.org/linux/man-pages/man1/script.1.html