Existe uma maneira simples de executar uma tarefa simples?

3

Eu ssh em um servidor do que iniciar um trabalho (por exemplo, rsync), então eu só quero ser capaz de sair do servidor e deixar o trabalho seguir seu curso. Mas se eu apenas fizer rsync ... & , acho que ainda está ligado ao tty de alguma forma, e que o trabalho morre quando o tty desaparece quando sai. Existe alguma maneira (fácil) de desconectar o processo do tty para poder sair sem o término do processo?

    
por Jonas Byström 24.03.2010 / 13:25

5 respostas

4
nohup rsync ... &

Parece fazer exatamente o que eu quero.

    
por 24.03.2010 / 13:43
7

você pode iniciá-lo em uma tela

    
por 24.03.2010 / 13:46
1

Use setsid e redirecione os identificadores 1 e 2 para /dev/null .

por exemplo,

setsid \
  perl -e 'for ( my $i = 0; 1; $i++ ) { $0 = "forever $i"; sleep( 1 ); }' \
  1>/dev/null \
  2>/dev/null

Sem setsid e um e comercial à direita, o comando ps ax mostra:

13526 pts/4    S      0:00 forever 11

Com setsid e sem e comercial no final, o comando ps ax mostra:

13520 ?        Ss     0:00 forever 68

... indicando que não há TTY anexado.

    
por 24.03.2010 / 13:28
1

No Linux (pelo menos no Ubuntu) você pode usar start-stop-daemon

Se tudo que você quer é iniciar um processo e deixá-lo funcionando, você pode usar

at now
    
por 24.03.2010 / 13:29
0

Debian e Ubuntu têm um pacote chamado daemon que parece ser parte do libslack project.

    
por 24.03.2010 / 14:42