O OS X determina qual aplicativo está acessando um disco rígido e impedindo a ejeção?

17

Estou executando o OS X 10.6 Server e quero ejetar minha unidade externa para poder fazer alguma manutenção em disco, como desfragmentação. No entanto, quando tento ejetar a unidade, ela falha dizendo que o disco está em uso. Posso forçar a ejeção, mas isso pode causar corrupção ... Como posso saber qual aplicativo está usando a unidade e mantê-la aberta?

jamone
fonte

Respostas:

25

Tente sudo lsof | grep /Volumes/External, onde "Externo" seria o nome da sua unidade externa. Você está hospedando os dados de algum serviço fora dessa unidade?

churnd
fonte
Apenas algumas pastas compartilhadas, mas eu sei que todos os clientes na rede haviam ejetado esses compartilhamentos e todo o servidor.
2113 jamone
Nem sempre importa. Às vezes, os processos AFP / SMB / NFS / FTP / etc deixam arquivos abertos apenas porque o serviço está sendo executado. A melhor aposta é tentar parar o serviço e depois ejetar. Isso seria melhor do que usar o comando acima junto com kill -9. Você pode parar um serviço via linha de comando com algo como sudo serveradmin stop smb, em seguida, iniciá-lo sudo serveradmin start smb, onde "smb" é o nome do serviço. sudo serveradmin listmostrará todos eles.
churnd 12/07/10
Normalmente são coisas de indexação do Spotlight!
JGFMK
5

lsof - Lista de arquivos abertos

No seu comando, digite apenas sudo lsofpara ver uma lista de arquivos abertos, sua localização e identificação do processo, para que você possa finalizar o processo.

Para refinar um pouco você pode usar sudo lsof | grep hard drive name.

Depois de ter o pid sudo kill -9 pidpara matar o processo impertinente.

Jon Rhoades
fonte