• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Die Bildungsoffensive hier im Forum geht weiter! Jetzt sollen Kreativität und technische Möglichkeiten einen neue Dimension erreichen. Das Thema in diesem Monat lautet - Verkehrte Welt - Hier geht es lang --> Klick

Run-on-Bonjour: Wie Skript starten, wenn ein Device on-/offline geht

Bananenbieger

Golden Noble
Registriert
14.08.05
Beiträge
25.515
Hallo zusammen,

ist es möglich, dass man bei einem Bonjour-Event (Gerät zeigt sich im Netz/Gerät verschwindet aus dem Netz) ein Skript auslöst?

Bei launchd bin ich leider nicht fündig geworden und bei MarcoPolo kann man die Regeln nicht passend definieren.

Über hilfreiche Antworten wäre ich dankbar.
 
Dazu müßtest Du in regelmäßigen Abständen selbst Bonjour Anfragen ins Netzt senden und nachsehen. Bonjour muß gepolled werden.
Gruß Pepi
 
Also sendet der Finder dann auch alle 2 Sekunden eine Bonjour-Anfrage heraus?
 
Nein, das macht der mDSNResponder(8) in dem Fall. Für eigene Skript könntest Du beispielsweise dns-sd(1) bemühen.

Um was für ein Gerät bzw. Dienst handelt es sich denn?
Gruß Pepi
 
Danke schon mal.

Es handelt sich um einen WiFi-Drucker (HP Photosmart C4580). Der Drucker hat zwar einen eigenen Bonjour-Server, aber leider verkündet der nur die Druckdienste im Netzwerk.
Eingebaut im Drucker ist noch ein Speicherkartenleser, mit dem man sich über SMB verbinden kann. Diese SMB-Share wird jedoch nicht über Bonjour verbreitet.
Leider gibt es keine Möglichkeit, den Drucker dazu zu bringen, dass er neben den Print-Service auch den SMB-Service verkündet.

Also habe ich momentan schon mal über dns-sd einen Proxy für den Service eingerichtet, womit der Kartenleser dann auch brav im Finder unter den Freigaben auftaucht und angesprochen werden kann.

Nur ist mir das nicht wirklich elegant genug, da die Freigabe immer angezeigt wird, selbst wenn ich in einem ganz anderen Netz bin.

Deshalb war meine Idee, im Hintergrund einen Dienst laufen zu lassen, der den dns-sd-Proxy startet/beendet, sobald der Print-Service im Netz auftaucht/verschwindet.

Zur Problemlösung stehen mir übrigens hier ein iMac, ein MacBook und ein kleiner Linux-Server (Kategorie "embedded Miniserver") zur Verfügung.
Ist es eigentlich ein Problem, wenn zwei dns-sd-Proxies denselben Dienst verkünden?
 
Warum machst Du Dir nicht einfach einen Alias von dem SMB Share ins Dock, oder die Finder Symbolleiste oder sonstwohin? K gibts auch noch. Ist doch völlig wurscht ob der in der Seitenleiste auftaucht und wieder verschwindet. So isses auch nur einen Klick entfernt und Du wirst ja hoffentlich wissen ob Du in dem Netzwerk bist oder nicht und das Ding nur mounten wenn Du auch eine Karte drinnen hast.

Ist zugegebenermaßen keine Lösung für die Aufgabenstellung, aber durchaus eine Lösung für das Problem.
Gruß Pepi
 
Ich bin halt ein Perfektionist ;-)

Mit dns-sd-Proxy geht es ja jetzt schon halbwegs ordentlich, aber eben noch nicht perfekt.
 
Nur ist mir das nicht wirklich elegant genug, da die Freigabe immer angezeigt wird, selbst wenn ich in einem ganz anderen Netz bin.

Verwendest du verschiedene Netzwerkumgebungen, oder immer "Automatisch"?
Wie startest du dns-sd? Per Terminal?
 
Ich habe bislang den dns-sd einfach in den Startobjekten, da er auf meinem stationären iMac läuft.

Würde ich Marco Polo einsetzen, könnte ich dann zwar den dns-sd starten, wenn der Druckserver im Netz auftaucht, aber leider kann ich bei Marco Polo keine NOT-Regel definieren, so dass ich den dns-sd nicht beenden kann, wenn der Druckserver weg ist.
Also habe ich erst einmal auf Marco Polo verzichtet und lasse den dns-sd permanent laufen.