Posso nohup / retomar uma iniciação de processo tar existente em uma sessão ssh?

3

Primeiro, se eu parar um processo tar, ele será retomado de onde parou ou terá que passar por todos os diretórios novamente (muitos diretórios e arquivos).

Em segundo lugar, estou "renegando" corretamente esse processo?

  1. Eu ssh'd no meu servidor linux (ubuntu).

  2. Eu iniciei um processo com 'tar -cf /mnt/backup.tar / var / www'

  3. Várias horas depois, o processo ainda está em execução e eu preciso desligar meu computador desktop.

  4. Eu pressionei Ctrl + Z para suspender o processo,

  5. executou o 'bg' para retomar em segundo plano.

  6. então correu 'disown -h tar'

  7. depois executou o 'ps faux'

    root      8760  0.0  0.1   8964  3036 ?        Ss   Aug21   0:21  \_ sshd: root@pts/0 
    root      8762  0.0  0.1   4408  1880 pts/0    Ss+  Aug21   0:00  |   \_ -bash
    root     23184  0.2  0.0   3708  1072 pts/0    D    Aug24   3:30  |       \_ tar -cf /mnt/backup.tar www/
    
  8. Eu vejo o comando tar e a coluna "STAT" mostra D. Isso significa desanexar?

  9. Eu não sabia exatamente qual era o "trabalho", assumi "tar".

Por favor, deixe-me saber se o que estou fazendo está correto e agora é seguro fazer logout e fechar a sessão ssh. Detestaria ter que reiniciar este processo.

Observe também que esta pergunta foi de certa forma respondida aqui: Posso nohup / selecionar um processo já iniciado?

No entanto, estou ampliando a questão, pois fiquei um pouco confuso sobre o uso do disown e o que realmente é um "trabalho".

    
por Louis 25.08.2010 / 15:58

1 resposta

1

Quando você sai de um shell de login do bash interativo, ele envia um SIGHUP para todos os filhos, a menos que a opção do shell huponexit esteja desativada.

Quando a maioria dos processos de userland receber um SIGHUP, eles sairão.

Quando você disown -h , você está marcando o processo para evitar que o bash envie um SIGHUP ao sair, independentemente das opções do shell. Você também pode ter prefixado o comando com nohup para reproduzir esse mesmo comportamento.

Em relação ao STAT D:

An uninterruptible sleep state is a sleep state that cannot handle a signal (such as waiting for disk or network IO (input/output)).

    
por 25.08.2010 / 16:04