Meu melhor palpite seria de que o iChat Agent estava sendo executado em segundo plano.
Se não, tente:
lsof | grep -i "AppleCamera"
Nas versões anteriores do OS X (antes do Yosemite), isso deve ser usado:
lsof | grep -i "iSight"
Como descubro qual aplicativo tem a câmera aberta em um iMac (Running Leopard)? A luz verde está acesa indicando que a câmera está em uso, assim como a cabine de fotos não consegue se conectar à câmera. Os únicos outros aplicativos em execução são o Safari e o Finder (o melhor que posso dizer), nenhum dos quais parece estar usando a câmera.
Se fosse o Windows, eu usaria o Process Explorer, o que posso fazer em um Mac para ver quem tem um determinado dispositivo aberto?
EDIT: usando a sugestão da NSD, eu quase tenho uma solução com
lsof | grep "USBVDC"
Isso mostra todos os aplicativos que tentam usar a câmera, mas não aquele que realmente a possui. Provavelmente perto o suficiente.
Em 2014, VDC
funciona como um termo de pesquisa lsof
para isso:
$ lsof | grep VDC
FaceTime 1097 user txt REG 1,4 405264 2934 /System/Library/Frameworks/CoreMediaIO.framework/Versions/A/Resources/VDC.plugin/Contents/MacOS/VDC
lsof
é uma boa aposta. Grepping para 'VDC' me dá os melhores resultados, mas em versões mais antigas do OSX você pode ter que usar outros termos 'AppleCamera', 'iSight'.
Então você tem uma lista e vê que alguns programas estão usando a cam. Você poderia tentar matá-los um por um, mas e se um deles estiver no navegador e você tiver um milhão de abas abertas?
Geralmente esse truque funciona para mim:
O resultado é que todos os processos que tentam usar a câmera estão temporariamente desconectados. Isso cuida de processos que continuaram usando a câmera por causa de alguma falha. O VDCAssistant é reiniciado automaticamente.
Esse truque também funciona muito bem se um programa não puder acessar a câmera.
Acabei de descobrir que ter Facetime minimizado faz com que o LED iSight acenda de vez em quando. Feche o FaceTime clicando no botão vermelho no canto superior esquerdo. Você ainda receberá chamadas do FaceTime, mas a câmera só será ativada quando elas chegarem.
iSight / AppleCamera agora é renomeado para FaceTime
lsof | grep -i "FaceTime"
pode ser como root, apenas no caso de alguém estar usando. Geralmente é facetime minimizado qual é o problema. Abra e saia.
Tomando emprestada a excelente solução que o iwein propôs, mas simplificando-a e tornando-a programável, você pode fazer isso:
sudo pkill 'VDCAssistant'
Você poderia colocar isso em uma função para tornar mais fácil lembrar:
repocam () {
sudo pkill 'VDCAssistant'
}
Você pode colocar essa função no seu arquivo .zshrc
ou .bashrc
ou o que você usa.
Fora do escopo, mas vale a pena prosseguir:
Você pode até configurar um cron job ou agente launchd ou o que você quiser (Google para detalhes!) para executá-lo de vez em quando. Se você puder descobrir qual aplicativo (como o HipShat) está acionando o problema, talvez seja possível descobrir uma maneira de executá-lo ao sair do aplicativo.
Também é possível acionar scripts quando o computador é ativado ou adormece.
você também pode usar o aplicativo de supervisão: link
Oaplicativo de supervisão pode detectar se alguns outros aplicativos estão usando sua câmera ou seu microfone, alertá-lo e, em seguida, você pode optar por bloqueá-lo, deixá-lo ou adicioná-lo à lista de permissões.