Wie kann ich meinen Mac veranlassen, ein Netzlaufwerk zu mounten, wenn eine Anwendung gestartet wird?

Ich habe den Speicher für meine "iTunes Media", "iTunes Music" und "Mobile Applications" mittels Symlinks auf ein Netzlaufwerk ausgelagert.

Die komplette Mediathek habe ich aus Performancegründen nicht bei iTunes ausgelagert.

Es wäre schön, eine Verbindung zu meinem Netzlaufwerk herzustellen, wenn ich iTunes starte, da dies weniger als ordnungsgemäß fehlschlägt, wenn der Netzwerkspeicher nicht bereits bereitgestellt ist.

Gibt es eine Möglichkeit, ein Netzlaufwerk zu mounten, bevor eine bestimmte Anwendung gestartet wird?

Was ist das für ein Server? AFP, SMB...?
Es ist ein AFP-Protokoll
Wenn Sie das Gefühl haben, dass On-Load-Mounting Sie nicht dorthin bringt, wo Sie sein möchten, können Sie es definitiv beim Start tun. Sie montieren einfach das Laufwerk, öffnen die Benutzereinstellungen in den Einstellungen, ziehen die Serververbindung per Drag & Drop in die Liste der Anwendungen, die beim Booten gestartet werden sollen, und aktivieren dann das Kontrollkästchen, wenn es nicht ausgewählt ist.

Antworten (4)

Mit Automator und dem ausgezeichneten Dienstprogramm SleepWatcher habe ich ein Setup, das automatisch eine Verbindung zu meinem Netzlaufwerk herstellt, wenn der Computer startet, und sich dann automatisch wieder verbindet, wenn der Computer aus dem Ruhezustand erwacht.

Ich habe ein Tutorial in einem Blogbeitrag geschrieben .

Ein Update als Antwort auf CajunLukes Frage:

Die Automator-App stellt eine Verbindung zum Netzlaufwerk her und integriert eine Verzögerung von 10 Sekunden, um sicherzustellen, dass die Netzwerkverbindung bereit ist.

SleepWatcher wird als Daemon ausgeführt und ermöglicht es Ihnen, die Ausführung von Skripten zu planen, wenn Ihr Computer in den Ruhezustand wechselt oder aus dem Ruhezustand aufwacht. In diesem Fall konfigurieren Sie es so, dass es beim Aufwachen des Computers ein Shell-Skript ausführt, das die oben erwähnte Automator-App aufruft.

Kannst du den Kern deines Blogbeitrags hier posten? Wir ziehen es wirklich vor, mehr Inhalt in einer Antwort zu haben als nur einen Link (im Allgemeinen aufgrund von Linkfäule).

Und eine einfache Lösung wäre, Ihre Netzwerkfreigaben automatisch für Sie bereitzustellen, wenn Sie sich anmelden. Ein Programm wie Network Drive Launcher würde beim automatischen Skripten und Verbinden mit Netzwerkfreigaben helfen, wenn Sie sich anmelden.

Alternativ könnten Sie ein Apple-Skript schreiben, das das Klicken auf das iTunes-Symbol ersetzen würde, um iTunes zu starten, nicht ideal, da Sie zuerst auf das Skript klicken müssten.

  1. Öffnen Sie die AppleScript-Editor-Anwendung.
  2. Geben Sie Folgendes ein

:

--open the network location first
tell application "Finder"
    open location "smb://... OR afp://..."
end tell

--wait 10 seconds adjust this time to meet your needs
delay 10

--open iTunes
tell application "iTunes"
    activate
end tell
  1. Speichern Sie das Skript Datei > Speichern

  2. Benennen Sie es nach Belieben, stellen Sie jedoch sicher, dass das Dateiformat im Dropdown-Menü „Dateiformat:“ auf „Anwendung“ eingestellt ist.

  3. Führen Sie das Skript aus, Sie können es wie jede andere Anwendung behandeln.

Schließlich sieht es so aus, als wäre es möglich, ein Apple-Skript zu schreiben, das genau das tut, was Sie wollen. Hier ist ein Link zu etwas, das möglicherweise mit einigen Änderungen funktioniert. Ich konnte es unter Lion nicht zum Laufen bringen, einige Syntaxprobleme müssen gelöst werden. Führen Sie ein Skript aus, wenn eine Anwendung geöffnet wird

Was Sie brauchen, ist ein Applescript, das die ganze Zeit geöffnet bleibt und seine Aufgaben regelmäßig ausführt. Hier ist ein Beispiel-Applescript für Sie. Speichern Sie es als Anwendung und aktivieren Sie das Kontrollkästchen "Geöffnet bleiben", damit es nach dem Start geöffnet bleibt. Ein Stay-Open-Skript funktioniert so, dass es zwei Haupthandler gibt, den "On Run" und den "On Idle". "on run" wird einmal beim Anwendungsstart ausgeführt. "im Leerlauf" läuft ab und zu. Sie legen fest, wie oft es ausgeführt wird, indem Sie am Ende des Handlers eine Anzahl von Sekunden zurückgeben. Hier ist also das Beispiel ... es richtet die Anwendungsparameter im Handler "on run" ein und kann diese Parameter dann in "on im Leerlauf" überprüfen. Im Moment zeigt dieses Skript nur die Ergebnisse an, aber Sie können es an dieser Stelle tun lassen, was Sie wollen. globale AnwendungenToWatch, Leerlaufzeit ...

danke für deine ausführliche antwort. Ich sehe hier einige Probleme: Ich verwende die Option, meine Netzlaufwerke beim Start zu mounten (fügen Sie sie einfach unter Einstellungen im Benutzerbereich in Startobjekten hinzu), aber ich schalte meinen Computer nie aus (mb air). Wenn ich nach draußen gehe, schließe ich es einfach und komme ohne Netzlaufwerke zurück. Die zweite Option sieht besser aus, funktioniert aber nicht, wenn iTunes von selbst startet (Gerät verbunden, Remote). Wahrscheinlich muss ich einen Hintergrund-Helfer codieren, der darauf wartet, dass iTunes gestartet wird? Ich will das nicht: D. Ich werde versuchen, dieses "Skript ausführen, wenn eine Anwendung geöffnet wird" zum Laufen zu bringen.
Vielleicht möchten Sie sich dies ansehen, um Skripts auszuführen, wenn Ihr Mac aus dem Ruhezustand aufwacht apple.stackexchange.com/questions/27036/…
Nur eine freundliche Erinnerung für Leute, nützliche Antworten hochzustimmen (und Antworten abzulehnen/zu kommentieren, die Hilfe benötigen). Die Seite schneidet besser ab, wenn die Abstimmung nette Beiträge wie diesen anerkennt....

Ich habe ein Skript erstellt, das eine Verbindung zu einem Netzlaufwerk herstellt, wenn iTunes ausgeführt wird. Sie können es von dieser Gist-Seite herunterladen (suchen Sie nach dem Download-Link "raw" ).

#!/bin/sh

HOST="hostname" # AFP server, e.g. server.local or 192.168.1.94 or…
USER="your_user_name" # for connection to AFP server
PASS="your_password" # for connection to AFP server
VOLUMENAME="your_volume_name" # name of volume to be mounted, typically username on AFP server.

while :
do
    if [[  $(ps axo pid,command | grep "/Applications/[i]Tunes.app/Contents/MacOS/iTunes ") ]]; then

        if [ ! -d "/Volumes/${VOLUMENAME}" ]; then # iTunes runs, Server not mounted
            echo "iTunes runs, now mounting ${VOLUMENAME}..."
            mkdir "/Volumes/${VOLUMENAME}"
            mount_afp afp://${USER}:${PASS}@${HOST}/${VOLUMENAME} "/Volumes/${VOLUMENAME}"
        fi
    fi
sleep 2
done # start over

Im Grunde läuft es in einer Endlosschleife und überprüft alle zwei Sekunden, ob iTunes.app läuft. Wenn ja, prüft es, ob Ihr AFP-Volume bereits gemountet ist, und tut dies, wenn nicht.

Sie müssen das Skript konfigurieren, bevor Sie es zum ersten Mal ausführen, siehe die Variablen über dem Skript. VOLUMENAME ist der Name aus dem normalen AFP-Verbindungsdialog ( in diesem Fall ssd ):

Verbindungsdialog

Um zu prüfen, ob das Ding grundsätzlich funktioniert: Angenommen, das Skript liegt auf dem Desktop, im Terminal tippe cd ~/Desktop/dann ./mount_afp_when_itunes_running.sh.

Legen Sie im Fall von Permission denieddie Dateiberechtigungen so fest, dass Sie das Skript mit ausführen können chmod 755 mount_afp_when_itunes_running.sh, und versuchen Sie es dann erneut.

Wenn alles funktioniert, könnten Sie dieses Skript schließlich automatisch über einen Launch Agent starten .

Dies mag ein wenig vom Thema abweichen, aber es besteht keine Notwendigkeit, die iTunes-Verzeichnisse zu symbolisieren! Um eine beliebige iTunes-Mediathek auszuwählen, die sich irgendwo auf einer beliebigen Festplatte befindet, halten Sie einfach unmittelbar nach dem Start von iTunes gedrückt.

Geben Sie hier die Bildbeschreibung ein

Der Grund für einen Symlink ist ein anderer. Wenn ich symbolische Verknüpfungen verwende, anstatt meine iTunes-Bibliothek so auszuwählen, wie Sie es beschrieben haben, werden alle Metadaten und Miniaturansichten auf meinem Computer gespeichert, anstatt auf einem Netzlaufwerk, was iTunes UNGLAUBLICH beschleunigt.