Como posso manter um comando que iniciei a partir do shell em execução se eu sair do shell?

12

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

    
por NES 24.12.2010 / 11:03

4 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: screen , dtach e nohup .

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

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

por karthick87 24.12.2010 / 11:26
5

Um comando útil (bash?) é disown . O bom disso é que ele funciona para um trabalho já em execução (a propósito, você descarta trabalhos, não processos, portanto, é necessário fazer um ctrl-Z, bg antes de executar o desuso 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 morto ao sair, então você

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

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

    
por Yossi Farjoun 24.12.2010 / 19:20
5

Use o comando nohup assim:

nohup gedit /home/user/file.txt &
    
por Javier Rivera 24.12.2010 / 11:20
1

eu uso

nohup mycommand &

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

nohup VBoxHeadless --startvm "myvm" --vrdp=off &
    
por Ivan 24.12.2010 / 21:13