De acordo com as Leis 12.965/2014 e 13.709/2018, que regulam o uso da Internet e o tratamento de dados pessoais no Brasil, ao me inscrever na newsletter do portal DICAS-L, autorizo o envio de notificações por e-mail ou outros meios e declaro estar ciente e concordar com seus Termos de Uso e Política de Privacidade.

Como desmontar sistemas de arquivos em uso

Colaboração: Rubens Queiroz de Almeida

Data de Publicação: 27 de Dezembro de 1997

Para desmontar sistemas de arquivos em uso, a melhor opção é combinar a saída do programa lsof com o comando kill. É claro que você vai avisar seus usuários antes para que eles possam encerrar suas tarefas com antecedência.

O comando lsof, ou List Open Files, indica todos os processos que estão acessando determinado arquivo ou filesystem. Veja um exemplo da saída deste programa:

  % lsof /home
  COMMAND     PID     USER   FD   TYPE     DEVICE   SIZE/OFF      INODE NAME
  lsof      19958  queiroz  cwd   VDIR    10,   8       5120       1024 /home (/d)
  ksh       26800  queiroz  cwd   VDIR    10,   8       5120       1024 /home (/d)
  ksh       26800  queiroz   63u  VREG    10,   8       2384       1060 /home (/d)
  lsof      28152  queiroz  cwd   VDIR    10,   8       5120       1024 /home (/d)

A segunda coluna indica a identificação do processo, o que nos interessa mais diretamente. Vejamos então o script:

  #!/bin/sh
  for pid in ""lsof /home | grep -v COMMAND | awk '{print $2}'""
  do
  kill -9 $pid
  done
  umount /home

O umount tem que ser dado imediatamente após o falecimento dos processos que estão acessando o filesystem em questão para evitar que novos processos sejam criados, novamente impedindo o umount.

O pacote lsof pode ser encontrado no servidor de ftp anônimo da Unicamp em http://ftp.unicamp.br/pub/unix-tools/lsof.

Adicionar comentário

* Campos obrigatórios
5000
Powered by Commentics

Comentários

Nenhum comentário ainda. Seja o primeiro!


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