Como visualizo a fila de tarefas no lftp depois que ela foi movida para um processo em segundo plano?

7

Acabei de começar a usar o lftp para transferir arquivos remotamente no meu Raspberry Pi rodando o Debian. Eu sei como transferir os arquivos e usar queue e jobs para adicionar e visualizar arquivos de transferência.

No entanto, não tenho certeza de como visualizar essas transferências quando o lftp se move para o segundo plano. A página de manual do lftp menciona como o lftp está se movendo para o segundo plano, mas quando eu abro uma nova instância do programa de shell e digite jobs , a fila está vazia. No entanto, posso ver claramente usando meu gerenciador de arquivos que as transferências ainda estão acontecendo, pois os arquivos estão lá e estão aumentando de tamanho.

Eu estou supondo que quando eu reabrir o lftp, é só abrir uma nova instância que não está conectada ao nohup mode lftp que tem a fila ativa. Eu tentei pesquisar em vários lugares, mas ninguém parece ter esse problema específico.

Então, acho que o que estou perguntando é duplo:

  1. Existe uma maneira de se anexar facilmente ao processo lftp de fundo para visualizar a lista atual de jobs ?

  2. Se não, existe alguma maneira de ver isso?

por drpfenderson 15.09.2012 / 03:24

3 respostas

12

Você está certo de que as instâncias do lftp não compartilham a fila de tarefas, o que, é claro, é semelhante ao funcionamento da fila de trabalhos do shell.

Ainda assim, o lftp pode, de fato, anexar a uma sessão em segundo plano existente. De acordo com o histórico de versões do lftp news , o recurso foi introduzido na versão 4.3.0 (2011-06-17). Se sua conexão com a sessão lftp for desconectada ou você sair com transferências em segundo plano em andamento, com versões recentes, você ainda poderá retomar o processo lftp em segundo plano e obter acesso à sua fila de trabalhos.

Da página do manual do lftp:

attach [PID]

Attach the terminal to specified backgrounded lftp process.

Para fazer isso, você precisa conhecer o ID do processo, PID, do processo lftp em segundo plano. Uma maneira simples de fazer isso é o comando pgrep, que lista os IDs de processo correspondentes.

Por exemplo, aqui eu faço o background de uma transferência no lftp:

lftp remote:/path> get oi-dev-151a-x86.iso 
[0] get oi-dev-151a-x86.iso &                                             
     'oi-dev-151a-x86.iso' at 655360 (0%) 296.1K/s eta:46m [Receiving data]
lftp remote:/path> exit
[82106] Moving to background to complete transfers...

Isso lista o pid necessário para anexar, mas caso não tenhamos anotado isso, podemos encontrá-lo novamente com o pgrep:

$ pgrep lftp
82106

E aqui retomamos o lftp em segundo plano:

$ lftp
lftp :~> attach 82106
[82106] Attached to terminal.
lftp remote:/path> jobs
[0] get oi-dev-151a-x86.iso 
    'oi-dev-151a-x86.iso' at 42827776 (5%) 1.49M/s eta:10m [Receiving data]

A versão Debian estável pode não ter o recurso anexo, mas você ainda pode listar os processos lftp ativos com o pgrep.

    
por 05.01.2013 / 23:23
1

Na página de manual do lftp :

If  you exit lftp when some jobs are not finished yet, lftp will move itself to
nohup mode in background. The same happens when you have a real modem hangup or
when you close an xterm.

Você não pode se conectar a processos em segundo plano em execução com nohup se o processo pai foi encerrado.

    
por 17.09.2012 / 20:07
0

Coletada na página man do lftp: Use ctrl-z para mover o processo em segundo plano e sair em lftp , depois inicie o lftp novamente e digite wait .

    
por 25.01.2014 / 22:37

Tags