
Tenho um pequeno trecho de código C que estou tentando executar em segundo plano. Quando inicio o programa com &
, posso encontrar o processo em top ou com ps, e vejo a exibição de E/S esperada no terminal ou em outro lugar, se canalizado para o arquivo ou executado com nohup
.
Aqui está o meu problema: em vez de iniciar o aplicativo e retornar imediatamente o controle para a linha de comando, o terminal parece esperar até que eu pressione Enter (ou use a seta para cima para começar a rolar pelo histórico de comandos) para exibir a linha de comando novamente. É possível iniciar o aplicativo em segundo plano e acessar a linha de comando novamente sem precisar pressionar Enter novamente? Eu tentei várias combinações de nohup
, disown
, 2>&1
, etc... sem sorte.
Responder1
O controle does
retorna ao shell imediatamente após iniciar o aplicativo, como mostra o fato de que você pode acessar o histórico com as teclas de seta. Por alguma razão, o shell não imprime o prompt até que você pressione Enter. Você pode verificar isso digitando um comando antes de pressionar enter ( ls
). Seu resultado deve ser exibido na tela.