você está aqui: Home  → Arquivo de Mensagens

bash - disown builtin

Colaboração: Rubens Queiroz de Almeida

Data de Publicação: 30 de setembro de 2014

No bash, o disown builtin é usado para remover tarefas da tabela de processos, ou para para marcar tarefas de forma a que, quando receberem um sinal SIGHUP, este não seja recebido pelo processo quando a shell pai receber este sinal. Isto ocorre quando, por exemplo, um usuário encerra sua sessão.

Vejamos mais um exemplo. Você começou uma tarefa complexa em seu notebook, e achou que esta tarefa se encerraria rapidamente. Mas isto não aconteceu e você precisa ir embora. O problema é que, se você encerrar a sua conexão, muito provavelmente a tarefa importante e complexa que você iniciou será também encerrada, com consequencias imprevisíveis.

Com o comando disown você pode conseguir escapar deste problema.

A primeira coisa a fazer é colocar o processo para rodar em background. Isto se faz pressionando as teclas <CTRL><z> e em seguida digitando bg. Pronto, o processo está rodando em background, mas você ainda não pode encerrar a sua sessão. Quando damos o comando bg o processo recebe um número, que deve ser usado em seguida para despossuir (disown) o comando.

Reproduzo a seguir uma sequencia completa de comandos ilustrando o uso do comando diswown:

  % find . >1 /dev/null
  ^Z
  [1]+  Stopped                 find . /dev/null > 1
  % :[/media/usbdisk]bg
  [1]+ find . /dev/null > 1 &
  % jobs
  [1]+  Running                 find . /dev/null > 1 &
  % disown %1
  % jobs
  % 

O comando find é deliberadamente longo, achar todos os arquivos a partir do diretório corrente. Em seguida, o processamento é interrompido (<CTRL><z>) e o processo passa a rodar em background (bg). Em seguida, executo o comando jobs para ver quais processos estão rodando em segundo plano. Vemos que o processo continua lá. Em seguida, executo o comando disown %1. Ao emitir o comando jobs novamente, vemos que o processo não mais me pertence. Posso fechar tudo e ir embora :-)

Referências



Veja a relação completa dos artigos de Rubens Queiroz de Almeida

 

 

Opinião dos Leitores

José Carlos
01 Out 2014, 17:04
Numa emergência isso pode salvar a pele, mas fica a dica de usar o comando screen assim que iniciar uma sessão.
http://www.vivaolinux.com.br/dica/Um-pouco-sobre-o-screen
Ivan Apolonio
30 Set 2014, 20:54
Excelente! Já precisei váááárias vezes de algo assim e não sabia como fazer.
*Nome:
Email:
Me notifique sobre novos comentários nessa página
Oculte meu email
*Texto:
 
  Para publicar seu comentário, digite o código contido na imagem acima
 


Powered by Scriptsmill Comments Script