A maneira mais eficiente de iniciar e separar um programa do terminal? [duplicado]

14

Estou tentando iniciar um programa do Terminal de maneira que ocorra o seguinte:

  1. Fechando o Terminal não fecha o programa
  2. O programa não está transmitindo nada ao Terminal enquanto abre, usa ou fecha
  3. O Terminal está livre para ser usado para outras coisas
  4. O comando é curto e doce
  5. Não há arquivo de saída para se preocupar com
por Evan 16.04.2015 / 03:45

6 respostas

15

Veja man nohup :

NAME
   nohup - run a command immune to hangups, with output to a non-tty

Resposta:

nohup program-name &
    
por waltinator 16.04.2015 / 03:50
8

Acho que essa seria a maneira mais completa:

program-name </dev/null &>/dev/null &
disown %%

Desprezar o processo em segundo plano significa que o shell não irá mais rastreá-lo. Não vai te dizer quando estiver pronto. Isso não impedirá que você feche sua concha. %% significa "o emprego mais recente em segundo plano".

Se você quiser esconder todos os detalhes, coloque uma função como esta em seu .bashrc

launch_and_forget () { "$@" </dev/null &>/dev/null & disown %%; }

Então

launch_and_forget program args "args args" ...

Dê um nome que seja significativo para você.

    
por glenn jackman 16.04.2015 / 04:12
6

Você pode simplesmente usar setsid : -

NAME
       setsid - run a program in a new session

SYNOPSIS
       setsid program [arg...]

DESCRIPTION
       setsid runs a program in a new session.

Tente o seguinte comando: -

setsid <command>

Exemplo: - setsid gedit , setsid nautilus ~/Downloads/ etc.

    
por Pandya 16.04.2015 / 17:33
2

Use tmux .

Primeiro, execute tmux e, em seguida, execute o comando desejado. Você pode fechar a janela tmux ou retroceder pelo atalho CTRL-B D . Na verdade, você pode até mesmo anexar novamente por tmux attach .

    
por Siyuan Ren 16.04.2015 / 10:14
1

Eu recomendaria o tmux , como Siyuan Ren sugerido, ou GNU Screen . Dessa forma, você obtém um novo terminal para o seu comando. Você pode separá-lo e esquecê-lo, mas pode voltar se mudar de ideia.

    
por Serpens 16.04.2015 / 17:00
0

Eu peguei e continuei a usar ...

(nohup program-name 2>/dev/null &)
    
por Tony Martin 22.04.2015 / 00:59