Como descobrir que processo está a usar uma unidade no Mac
O Mac não ejeta a sua unidade? Eis como descobrir exatamente que processo a está a bloquear: usando o Monitor de Atividade, o Terminal e um método mais rápido com um clique.
Quando o macOS se recusa a ejetar uma unidade externa, diz-lhe que algo a está a usar, e fica-se por aí. Sem nome, sem pista, sem indício. Descobrir o culpado por conta própria requer alguns passos, mas é perfeitamente possível. Este guia percorre todos os métodos, desde as ferramentas integradas que a Apple disponibiliza até aos comandos do Terminal que revelam o que a interface gráfica esconde.
Porque é que o macOS simplesmente não lhe diz
Isto é uma frustração genuína, não um erro do utilizador. O macOS sempre mostrou o erro de “disco em uso” sem nomear o processo responsável. O sistema operativo sabe que processo mantém uma referência a um ficheiro aberto no volume. Apenas não revela essa informação no Finder nem na janela de ejeção.
O resultado: fecha todas as apps visíveis, nada muda, e a unidade continua sem ejetar. Como explicado no guia de resolução do erro ‘Disco em uso’ do macOS, o bloqueador é muitas vezes um processo em segundo plano (a indexação do Spotlight, o QuickLook a gerar miniaturas ou um daemon de sincronização na nuvem) e não algo que se lembraria de encerrar manualmente.
Método 1: Monitor de Atividade (limitado, mas um ponto de partida)
O Monitor de Atividade é o primeiro sítio onde a maioria das pessoas procura. Não é ideal para esta tarefa específica, mas pode ajudar a restringir as hipóteses.
- Abra o Monitor de Atividade (Aplicações → Utilitários → Monitor de Atividade, ou pesquisa no Spotlight).
- Clique no separador Disco no topo.
- Ordene por Bytes lidos ou Bytes escritos para ver que processos estão ativamente a ler ou a escrever.
O problema: o Monitor de Atividade mostra a atividade do disco em todos os volumes, não apenas na sua unidade externa. Um processo no topo da lista pode estar a escrever no seu SSD interno, e não na sua unidade USB. Aqui não consegue filtrar por volume.
Ainda assim, se vir algo inesperado (um daemon de cópia de segurança, uma app de multimédia, um serviço de sincronização), vale a pena encerrá-lo e tentar ejetar novamente.
Método 2: Terminal com lsof (a abordagem fiável)
lsof significa “list open files” (listar ficheiros abertos) e, no macOS, cada volume montado é um caminho de ficheiro. Este comando mostra-lhe todos os processos com uma referência aberta a uma unidade específica.
Encontrar o ponto de montagem da sua unidade
Primeiro, confirme o nome exato da sua unidade tal como o macOS a vê:
ls /Volumes/
Isto lista todos os volumes montados. A sua unidade externa aparecerá aqui. Anote o nome exato, incluindo maiúsculas e espaços.
Executar o lsof sobre o volume
lsof /Volumes/NomeDaSuaUnidade
Substitua NomeDaSuaUnidade pelo nome real do volume. O resultado lista todos os processos com um ficheiro aberto nesse volume, incluindo:
- COMMAND: o nome do processo
- PID: o identificador do processo
- USER: a conta de utilizador que o está a executar
- NAME: o caminho específico do ficheiro a ser acedido
O que vai normalmente ver
Culpados comuns que aparecem no resultado do lsof:
mdsoumds_stores: indexação do SpotlightQuickLookUIService: geração de miniaturas do QuickLookcloudd,birdoucom.apple.iCloudDrive: sincronização do iCloudbackupd: Time MachineFinder: janelas do Finder abertas a apontar para a unidade- Apps de multimédia como o Final Cut Pro ou o Premiere com ficheiros de projeto abertos
Dica: Se o
lsofnão devolver qualquer resultado, tente executá-lo comsudopara obter permissões elevadas:sudo lsof /Volumes/NomeDaSuaUnidade. Alguns processos do sistema só aparecem com acesso de root.
Para uma análise mais aprofundada do que o lsof consegue fazer (incluindo filtrar por PID e terminar processos diretamente a partir da linha de comandos), veja O comando lsof explicado para utilizadores de Mac.
Encerrar o processo a partir do Terminal
Assim que tiver o PID, pode encerrar o processo:
kill -15 <PID>
Se não responder, escale para um encerramento forçado:
kill -9 <PID>
Depois tente ejetar a unidade novamente.
Método 3: fuser como alternativa
O fuser é outro comando do Terminal que indica que processos estão a usar um ficheiro ou um sistema de ficheiros. É menos detalhado do que o lsof, mas mais rápido de ler:
sudo fuser /Volumes/NomeDaSuaUnidade
O resultado é apenas uma lista de PID. Para obter os nomes dos processos a par deles, combine-o com o ps:
sudo fuser /Volumes/NomeDaSuaUnidade | xargs ps -p
Isto é útil quando quer uma resposta rápida sem analisar uma longa tabela do lsof.
Processos bloqueadores comuns e o que fazer quanto a eles
Spotlight (mds, mds_stores)
O Spotlight indexa novas unidades automaticamente. Se ligar uma unidade grande, a indexação pode demorar minutos ou horas. Pode pará-la temporariamente abrindo Definições do Sistema → Siri e Spotlight → Privacidade do Spotlight e adicionando a unidade à lista de exclusões. Em alternativa, encerre o mds através do Terminal. O Spotlight reinicia por conta própria mais tarde.
QuickLook (QuickLookUIService)
O QuickLook gera miniaturas de pré-visualização quando percorre uma unidade no Finder. Pode manter referências a ficheiros abertas mesmo depois de ter fechado a janela do Finder. O QuickLook está a manter a sua unidade refém aborda isto em detalhe: a solução rápida é encerrar o processo do QuickLook através do Terminal ou de uma ferramenta dedicada.
iCloud e Dropbox
Os serviços de sincronização tratam as unidades externas como qualquer outra pasta se tiver guardado dados de sincronização nelas. Mantêm os ficheiros abertos durante o carregamento ou a resolução de conflitos. Como impedir que o iCloud e o Dropbox bloqueiem a ejeção de unidades explica como pausar a sincronização antes de ejetar.
Finder
O próprio Finder pode bloquear a ejeção se tiver uma janela aberta a mostrar o conteúdo da unidade, ou se estiver uma cópia de ficheiros em curso. Feche todas as janelas do Finder que apontam para a unidade, ou encerre e reinicie o Finder a partir do menu Apple.
Apps de multimédia e criativas
O Final Cut Pro, o Premiere, o Logic e apps semelhantes mantêm os ficheiros de projeto abertos enquanto o projeto estiver carregado. Feche o projeto (não apenas a janela da app) antes de ejetar. Veja Usar unidades externas com o Final Cut Pro sem problemas de ejeção para conselhos específicos de fluxo de trabalho.
Porque é que o Terminal é inconveniente para uso regular
A abordagem com lsof funciona, mas tem atrito. Precisa de:
- Abrir o Terminal
- Saber o nome exato do volume
- Analisar resultados pouco familiares
- Procurar PID e nomes de processos
- Executar um comando kill separado
- Voltar ao Finder para ejetar
Se é programador ou administrador de sistemas que vive no Terminal, tudo bem. Se é um editor de vídeo ou um utilizador comum de Mac que só quer desligar uma unidade em segurança, é muita cerimónia para uma tarefa que devia demorar dois segundos.
Aviso: Evite arrancar a unidade sem a ejetar, mesmo que esteja impaciente: pode corromper o sistema de ficheiros, sobretudo em unidades formatadas como exFAT ou NTFS. Os riscos são reais e estão detalhados em Desligar uma unidade externa sem ejetar pode danificá-la?
A forma mais rápida: ver o processo bloqueador num relance
O Ejecta faz exatamente o que o lsof faz, mas revela o resultado na sua barra de menus no momento em que precisa dele. Clique no ícone, veja que processo está a reter a sua unidade, clique para o encerrar e ejete, sem Terminal, sem análise, sem alternar entre janelas.
Lida com os casos em que as pessoas mais tropeçam: o Spotlight a correr em segundo plano, o QuickLook a reter uma cache de miniaturas, um daemon de sincronização que não larga. O nome do processo está ali mesmo, legível, com uma única ação para o resolver.
Referência rápida: que método usar
| Situação | Melhor método |
|---|---|
| Quer perceber o que se está a passar | lsof no Terminal |
| Precisa de uma resposta rápida e pontual | fuser no Terminal |
| Faz isto regularmente e não quer atrito | App Ejecta na barra de menus |
| Está a resolver um processo de sistema teimoso | sudo lsof + kill |
Se está regularmente a embater na parede do “disco em uso”, descarregue o Ejecta e coloque o nome do processo bloqueador a um clique de distância, sem Terminal.
Artigos relacionados
Como ejetar uma pen USB do Mac em segurança
Todas as formas de ejetar uma pen USB no Mac e o que fazer quando o macOS diz que o disco está em utilização e …
Como encontrar, abrir e usar um disco externo no Mac
Ligue um disco externo ao Mac, encontre-o no Finder, abra os seus ficheiros e desligue-o em segurança. Um guia …
Como ejetar em segurança um disco rígido externo no Mac
Aprenda as formas corretas de ejetar em segurança discos rígidos externos no macOS. Evite a corrupção de dados …
Unidade externa não ejeta no Mac depois do repouso
O Mac acorda do repouso e mostra 'Disco não ejetado corretamente'? Eis porque acontece e como travá-lo de vez …