Como manter um comando iniciado no shell em execução se eu sair do shell?


12

Quais métodos existem para manter um comando iniciado a partir do shell em execução após o logout do shell?

Respostas:


11
  • Para colocar o aplicativo em segundo plano, use &:

    command &
    
  • Se você deseja fechar o terminal, e manter o aplicativo em execução, você pode usar várias opções: , e .screen Tela de instalaçãodtach Instalar dtachnohup

    nohup command &
    
  • A tela é útil, pois você pode reiniciar uma sessão e o dtach também é divertido.

  • Veja os links a seguir para obter mais informações


adicionar um &no final do comando também não funciona?
theTuxRacer

2
@ Kaustubh-P usando & geralmente é um bom hábito para fechar terminais através do comando 'exit', sem pressionar o botão Fechar X. & faz com que o comando seja executado no fundo. Mas se o shell pai fechar. que ainda pode forçar a saída dos programas em segundo plano.
karthick87

5

Use o comando nohup como este:

nohup gedit /home/user/file.txt &

Como até mesmo remover nohup: ignorando entrada e redirecionando
Amruth A

5

Um comando útil (bash?) É disown. o bom disso é que ele funciona para um trabalho que já está em execução (a propósito, você nega trabalhos, não processos, portanto, é necessário fazer um ctrl-Z, bgantes de executar o repúdio em seu trabalho. Por exemplo, imagine-se fazendo o seguinte:

local % ssh some.where.com
remote % verylongscript.sh

Agora você percebe que precisa ir, mas não quer que o script seja eliminado ao sair, então você

ctrl-Z
remote % bg
remote % disown
remote % exit
local %

Agora, remoteseu script ainda está em execução.


1

eu uso

nohup mycommand &

Por exemplo, para abrir um servidor virtual VirtualBox, digite o seguinte em um shell remoto (que eu fecho então):

nohup VBoxHeadless --startvm "myvm" --vrdp=off &
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.