nohup rsync ... &
Parece fazer exatamente o que eu quero.
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?
você pode iniciá-lo em uma tela
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.
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
Tags ssh background-process daemon