'udev' unter Mac OS X

F

franky83

Aktives Mitglied
Thread Starter
Dabei seit
05.12.2007
Beiträge
563
Reaktionspunkte
35
Hallo, wie kann ich unter 10.5.5 überwachen ob ein externer Datenträger (usb) angestöpselt wurde? Ich möchte sofern das Gerät gemounted wurde, ein script ausführen lassen.
Unter Ubuntu gibt es 'udev' wo ich auch Regeln erstellen kann was mit dem Gerät passieren soll usw.

Es geht im Endeffekt darum, dass ich Dateien sobald das Gerät bereit ist, kopieren/aktualisieren möchte.

Will das script aber auch nicht die ganze Zeit laufen lassen und auf das Device Dir zu schauen ob Gerät schon gemounted...soll halt Ressourcen sparen.

Gruß Franky
 
Schaue Dir mal "Ordneraktionen" und deren Funktionsweise an. Du kannst dann auch eine Ordneraktion an /Volumes/ binden und hast damit die gewünschte Funktionalität.
 
  • Gefällt mir
Reaktionen: franky83
das ist ne variante aber hier wird ja auf das Filesystem des Macs gepollt und nicht auf die USB Schnittstelle. Somit wird das Script immer ausgeführt wenn ich eine neue Datei in den Ordner verschiebe. Klar kann ich in dem Script schauen ob das Device auch vorhanden ist, ist aber nicht Sinn meines Vorhabens. Dann kann ich auch nen Script schreiben und beim Systemstart beginnen lassen und in nem bestimmten Intervall ausführen lassen.

Oder sehe ich was falsch?
 
Es ist richtig. Das Skript wird dann getriggert, wenn in dem jeweiligen Ordner eine Datei oder ein Ordner erstellt oder entfernt wird. Frage: Was passiert wenn man einen USB-Stick ansteckt?
 
Mit hoher Wahrscheinlichkeit gar nichts sofern ich wie du schon sagtest, das Dateisystem nicht berühre. Soll es aber.

Demnach muss "irgendwas" das script starten, was zugriff auf die USB Schnittstelle hat, bzw. diese schon "beobachtet".

Kann ich nicht ein Script auf den USB Stick als "autorun" packen. Soll halt als erstes ausgeführt werden sofern angeschlossen.
 
Ahhh ich weiss nicht ob du darauf hinaus wolltes, denke schon (siehe erster post) aber ich kann ja auf den Volumes ordner nen Script packen...das meinst du sicher oder?
 
Genau, Du kannst das Skript auf den /Volumes/-Ordner legen.
 
Wenn Du nicht über das Filesystem gehen möchtest, und Dinge wie NSWorkspace Notifications aussschliessen, bleibt Dir nur IOKit, "Accessing Hardware from Applications"

Aber auch da musst Du einen Agent laufen lassen.

Wahrscheinlich ist auch der Weg über einen launchd Prozess nicht das richtige, da könntest Du -- AFAIK -- nur auf bestimmte Volumes reagieren.

Alex
 
  • Gefällt mir
Reaktionen: franky83
Es gibt auch noch DSW, Do Something When. Sollte genau das machen können was du willst, solange du nicht ein eigenes Programm programmieren willst, sondern es nur verwenden willst.
hier: http://www.azarhi.com/Projects/DSW/
 
Zurück
Oben Unten