launchd
Thunderbolt dock'umu her bağladığımda bir kabuk betiği çalıştırmak için bir aracı kullanıyorum . IOKit
Dock'un ne zaman takıldığını algılamak için bildirimleri kullanabildim , ancak dock ne zaman çıkarılırsa bir kabuk betiği de çalıştırmak istiyorum.
Dock'un ekini tespit etmek için com.apple.iokit.matching
's device-attach
olayı kullanıyorum:
<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>
Henüz düşlememiş olmama rağmen, aynı zamanda kopmaktan ateşlenen bir olay olmalı. Bu konuyla ilgili elma belgeleri konuşlandırılabilir.
Gerçekten cihazın hala bağlı olup olmadığını kontrol etmeye devam eden bir sorgulama yöntemi kullanmaktan kaçınmak istiyorum. Bazı daha iyi çözümler gerekir
Ayrıca growl, ControlPlane ve diğer benzer uygulamalar söz konusu değil.
Düzenle:
Açık olmak gerekirse. Herhangi bir cihazın takılı / çıkarılmış olduğu durumlarda değil, bu belirli dok her bağlandığında veya bağlantısı kesildiğinde bir kabuk betiği çalıştırmak istiyorum .