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.

  1. Abra o Monitor de Atividade (Aplicações → Utilitários → Monitor de Atividade, ou pesquisa no Spotlight).
  2. Clique no separador Disco no topo.
  3. 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:

  • mds ou mds_stores — indexação do Spotlight
  • QuickLookUIService — geração de miniaturas do QuickLook
  • cloudd, bird ou com.apple.iCloudDrive — sincronização do iCloud
  • backupd — Time Machine
  • Finder — 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 lsof não devolver qualquer resultado, tente executá-lo com sudo para 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:

  1. Abrir o Terminal
  2. Saber o nome exato do volume
  3. Analisar resultados pouco familiares
  4. Procurar PID e nomes de processos
  5. Executar um comando kill separado
  6. 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.