Como posso executar um comando do terminal sem bloqueá-lo?

28

Eu corro muitos programas no Ubuntu a partir do terminal, mas eu gostaria de poder continuar usando o terminal depois que eu tiver um programa aberto. Como posso colocar os programas em segundo plano para não precisar abrir outra janela?

    
por Salvador Dali 02.12.2012 / 02:22

3 respostas

41

Existem diferentes maneiras de executar um programa de terminal e continuar usando o terminal:

  • Você pode abrir outra guia do terminal (clique com o botão direito do mouse e selecione "Abrir nova guia").
  • Você pode anexar & ao comando executado. Esteja ciente de que você não verá a saída de texto no terminal, como mensagens de erro.
  • Você pode digitar Ctrl - Z e, em seguida, executar bg . Isso tem o mesmo efeito que executar command &
  • Você pode executar nohup command & e, em seguida, pressionar Enter. (Agradecemos a ccpizza , veja os comentários abaixo.)

No entanto, pressionar Alt - F2 e, em seguida, executar o seu comando a partir da GUI é geralmente considerado a melhor prática - não há nenhum terminal!

Observe que ao usar & (não nohup ), fechar o terminal ainda encerrará o aplicativo, a menos que você execute disown depois .

EDITAR: Parece que usar nohup às vezes deixará pequenos excrementos em sua pasta pessoal. O que normalmente teria sido registrado no terminal aparentemente foi salvo em um arquivo em ~ /.

~~

Uma maneira simples de executar um programa em segundo plano é program-name & disown , que o deixará em um terminal que pode ser fechado sem matar o processo.

    
por 02.12.2012 / 02:38
6

Você pode executar o comando com um & depois.

Por exemplo:

thunderbird &

Veja Aqui para mais informações.

    
por 02.12.2012 / 02:25
3

Você pode usar setsid para executar o programa em uma nova sessão, além de &>/dev/null , para que você não receba nenhuma mensagem de log.

Então seria como

setsid program-name &>/dev/null

    
por 11.01.2018 / 11:15