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?

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.


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.


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.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.