
Suponha que eu queira executar um programa Java, então digite
java myProgram
e então suponha que ele imprima alguma saída na tela, mas leve algumas horas para terminar a execução. Se eu quiser continuar trabalhando no mesmo terminal enquanto ele é executado, qual comando devo usar? Eu tentei e no final e não pareceu funcionar.
Responder1
Basta adicionar um &
após o comando. Isso fará com que o comando seja executado em segundo plano.
Observe que você ainda obterá a saída dele, então você pode querer redirecionar a saída para /dev/null
algum arquivo de configuração.
Por exemplo, para redirecionar stdout e stderr:
java myProgram > /dev/null 2>&1 &
Responder2
Como o programa dura muito tempo, você pode considerar usartela. Você pode executar o programa e iniciar outro prompt de comando com Control-a Control-c. Você pode fazer isso quantas vezes quiser e trabalhar em várias coisas ao mesmo tempo. Além disso, mesmo se você sair e voltar mais tarde (só não desligue), você pode se reconectar à tela e ver como está. Faça "man screen" para obter informações.
Há também o tmux, que é uma ferramenta semelhante, mas você precisará instalá-la.
Responder3
Eu pensotelaresponderá melhor à sua pergunta específica, mas parece que seu fluxo de trabalho se beneficiaria mais com o uso de guias.
Para abrir uma nova aba no terminal, com o terminal selecionado você pressionaCtrl+T, e você pode alternar entre as guias pressionandoCtrl+PgUpouCtrl+PgDownpara alternar entre eles.
Isso rapidamente se torna intuitivo e acaba sendo eficiente, pois você pode alternar rapidamente entre as guias para verificar programas de longa execução ou gerar rapidamente mais guias enquanto ocupa aqueles em que está trabalhando com tarefas longas.