Estoy usando un launchd
agente para ejecutar una secuencia de comandos de shell cada vez que conecto mi dock thunderbolt. He sido capaz de utilizar IOKit
notificaciones para detectar cuando el muelle se adjunta, pero también quiero ejecutar un script de shell cada vez que el muelle se va a separar.
Para detectar la fijación del muelle utilizo com.apple.iokit.matching
's device-attach
evento:
<key>LaunchEvents</key>
<dict>
<key>com.apple.iokit.matching</key>
<dict>
<key>com.apple.device-attach</key>
<dict>
<key>IOProviderClass</key>
<string>IOPCIDevice</string>
<key>idVendor</key>
<integer>21</integer>
<key>idProduct</key>
<integer>4</integer>
<key>IOMatchStream</key>
<true/>
<key>IOMatchLaunchStream</key>
<true/>
</dict>
</dict>
</dict>
No debe ser un evento que se dispara en desprendo, aunque no he encariñado con ella todavía. La documentación de apple sobre este tema es deplorable.
Realmente quiero evitar el uso de un método de votación que sigue comprobando si el dispositivo está conectado. Algunos mejores que las soluciones deben
También gruñido, ControlPlane y otras aplicaciones similares están fuera de la cuestión.
Editar:
Para ser claros. Quiero ejecutar un script de shell cada vez que este dock se conecta o desconecta, no siempre cualquier dispositivo que se encuentre conectado/desconectado.