[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: [OT] Controle de processos



Gustavo Feijó escreveu:
> Olá pessoal,
>
> há algum tempo que postei uma dúvida sobre propriedade de processos,
> perguntando como dissociar um processo de um usuário.
>
> Aprendi que o disown (um comando builtin do bash) faz essa tarefa de
> forma bem eficiente.
>
> A dúvida agora é inversa, ou seja, como faço para pegar de volta um
> processo que dissociei?
>
> Por exemplo:
>
> Digamos que executei um wget (pid = 1234) de um arquivo com mais de 2
> GB (o que demoraria bastante) e quando já tinha 80% do arquivo na
> minha máquina precisei fazer logoff.
>
> Para não perder os 80% do arquivo já baixado, executei:
>
> $ disown 1234
>
> Só que agora estou de volta e quero pegar a propriedade do processo novamente.
>
> Alguém sabe informar qual seria o comando (ou sequencia de comandos)
> "inverso" do disown?

Na vdd o disown não desassocia o processo de um usuário.
A shell mantém uma tabela de jobs, e quando recebe um sinal
SIGHUP, envia um sinal SIGHUP (ou SIGCONT para os jobs
pausados com ctrl+z) para cada um dos jobs desta tabela.
O que o disown faz é remover o processo filho da tabela de jobs,
assim ele não receberá um SIGHUP. Se usado com 'disown -h', não
remove da tabela, mas apenas impede o envio desses sinais aos
processos.

Assim, se vc rodar disown com a opção -h, pode simplesmente
usar fg para retomá-lo.
Se não usar '-h', não conheço uma forma de "dis-disown"
o processo.

$ wget bigfiles.com/10GB_file.tgz &
[1] 26258
$ disown -h 26258
$ fg 1
wget bigfiles.com/10GB_file.tgz




Tom Lobato
www.tinecon.com.br


Reply to: