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.