Como executar um programa a partir da linha de comando e ainda poder trabalhar na linha de comando enquanto ele é executado? [duplicado]

0

Suponha que eu queira executar um programa em Java para que eu digite

java myProgram

e, em seguida, suponha que imprima alguma saída na tela, mas leve algumas horas para concluir a execução. Se eu quiser continuar trabalhando no mesmo terminal enquanto ele roda, qual é o comando que devo usar? Eu tentei & amp; no final e não parece funcionar.

    
por Lucas Alanis 13.06.2014 / 02:17

3 respostas

2

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, portanto, poderá redirecionar a saída para /dev/null ou para algum arquivo de configuração.

Por exemplo para redirecionar stdout e stderr:

java myProgram > /dev/null 2>&1 &
    
por hytromo 13.06.2014 / 02:21
0

Como o programa é executado há muito tempo, você pode considerar usar a tela . 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 depois voltar (apenas não desligue), você pode se reconectar à tela e ver como está indo. Faça "man screen" para informações.

Existe também o tmux, que é uma ferramenta similar, mas você precisará instalá-lo.

    
por pcm 13.06.2014 / 02:29
0

Acho que a tela responderá melhor à sua pergunta específica, mas parece que seu fluxo de trabalho se beneficiaria mais com o uso de guias.

Para abrir uma nova guia no terminal, com o terminal selecionado, pressione Ctrl + T , e você pode alternar entre as guias pressionando Ctrl + PgUp ou Ctrl + PgDown para alternar entre eles.

Isso rapidamente se torna intuitivo e acaba sendo eficiente, já que você pode alternar rapidamente entre as guias para verificar os programas de longa duração ou gerar rapidamente mais guias à medida que você estiver ocupado com as tarefas em que está trabalhando.

    
por TimClifford 13.06.2014 / 03:00