Como executar programas a partir de um terminal linux sem bloquear o terminal?

34

Quando inicio um programa a partir de um terminal, não posso usar essa instância de terminal novamente até fechar o programa.

Existe uma maneira de executar um programa / aplicativo a partir de um terminal sem bloquear o terminal até que o programa termine?

ueaiox
fonte

Respostas:

62

Você está procurando um controle de trabalho que seja suportado pela maioria dos shells. Veja este artigo para uma introdução. Em algum momento, você também pode querer ler a documentação oficial do bash, que é o shell padrão no Ubuntu.

Em resumo: para iniciar um trabalho automaticamente em segundo plano, faça uma &chamada após a chamada do programa

$ program &

Você também pode interromper programas CTRLze colocá-los em segundo plano posteriormente combg

$ program
^Z
$ bg

Para fazê-los rodar em primeiro plano novamente, use fg.

Benjamin Bannier
fonte
Descobrir que existe documentação oficial para o bash foi uma grande ajuda secundária que recebi dessa resposta, obrigado!
Addem
1

Se o controle do trabalho não for exatamente o que você deseja, examine a tela .

A tela controla vários terminais virtuais para que você possa executar vários programas sem que eles interajam. Por exemplo, você pode executar o mocp (um music player), o aptitude (um gerenciador de pacotes) e o vim (um editor de texto) simultaneamente, mesmo que todos sejam programas interativos que tratam o terminal como se tivessem acesso exclusivo.

Isso facilita a alternância de uma tarefa para outra, como a criação de um novo terminal na tela para ler uma página de manual - sem perder o seu lugar em outro lugar - virar e voltar, etc.


fonte
1

No Ubuntu 16.10, não consigo fazer com que a coisa ctrl + Z mencionada em outra resposta funcione, mas

program &
^C

Por outras palavras, funciona para mim ctrl + cdepois de iniciar o programa com um e comercial final.

Gemtastic
fonte