8 votes

Comment puis-je faire en sorte que mon Mac monte un lecteur réseau lorsqu'une application est lancée ?

J'ai externalisé le stockage de mes "iTunes Media", "iTunes Music" et "Mobile Applications" en utilisant des liens symboliques sur un disque réseau.

Je n'ai pas externalisé la médiathèque complète pour des raisons de performances avec iTunes.

Ce serait bien de pouvoir se connecter à mon disque réseau lorsque je lance iTunes, car il échoue de manière peu gracieuse lorsque le stockage réseau n'est pas déjà monté.

Existe-t-il un moyen de monter un lecteur réseau avant le lancement d'une application particulière ?

5voto

Abel Points 324

Utilisation d'Automator et de l'excellent SleepWatcher utilitaire, j'ai une configuration qui se connecte automatiquement à mon lecteur réseau au démarrage de l'ordinateur, puis se reconnecte automatiquement lorsque l'ordinateur sort de sa veille.

J'ai écrit un tutoriel dans un article de blog .

Une mise à jour en réponse à la question de CajunLuke :

L'application Automator se connecte au lecteur réseau et intègre un délai de 10 secondes pour s'assurer que la connexion réseau est prête.

SleepWatcher fonctionne comme un démon, et vous permet de planifier l'exécution de scripts lorsque votre ordinateur se met en veille ou se réveille. Dans ce cas, vous le configurez pour exécuter un scripts shell lorsque l'ordinateur se réveille, qui appelle l'application Automator susmentionnée.

2voto

MrDaniel Points 12472

Une solution simple serait de monter automatiquement vos partages réseau lorsque vous vous connectez. Un programme comme Lanceur de lecteur réseau permettrait de créer automatiquement des scripts et de se connecter à des partages en réseau lorsque vous vous connectez.

Sinon, vous pourriez écrire un script d'Apple qui remplacerait le fait de cliquer sur l'icône iTunes pour lancer iTunes, ce qui n'est pas idéal puisque vous devriez d'abord cliquer sur le script.

  1. Ouvrez l'application AppleScript Editor.
  2. Tapez le texte suivant

:

--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. Enregistrer le fichier script > Enregistrer

  2. Donnez-lui le nom que vous voulez, mais veillez à ce que le format du fichier soit "Application" dans la liste déroulante "Format de fichier :".

  3. Exécutez le script, vous pouvez le traiter comme n'importe quelle autre application.

Enfin, il semble qu'il soit possible d'écrire un script Apple qui fait exactement ce que vous voulez, voici un lien vers quelque chose qui pourrait fonctionner avec quelques modifications. Je n'ai pas pu le faire fonctionner sur Lion, certains problèmes de syntaxe doivent être résolus. Exécuter un script à chaque fois qu'une application s'ouvre.

Ce dont vous avez besoin, c'est d'un applescript qui reste ouvert en permanence et effectue ses tâches périodiquement. Voici donc un exemple d'applescript pour vous. Enregistrez-le en tant qu'application et cochez la case "rester ouvert" pour qu'il reste ouvert après son lancement. La façon dont un script reste ouvert fonctionne est qu'il y a 2 gestionnaires principaux, le "on run" et le "on idle". "on run" s'exécute une fois au lancement de l'application. "on idle" s'exécute de temps en temps. Vous définissez la fréquence d'exécution en renvoyant un nombre de secondes à la fin du gestionnaire. Voici donc l'exemple... il configure les paramètres de l'application dans le handler "on run" et ensuite dans "on idle" il peut vérifier ces paramètres. Pour l'instant, ce script ne fait qu'afficher les résultats mais vous pouvez lui faire faire ce que vous voulez à ce stade. global applicationsToWatch, idleTime ...

1voto

myhd Points 3320

J'ai fait un script qui se connecte à un lecteur réseau quand iTunes est lancé. Vous pouvez le télécharger à partir de cette page de résumé (cherchez le "brut" lien de téléchargement).

#!/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

En gros, il tourne dans une boucle infinie et vérifie toutes les deux secondes si iTunes.app est en cours d'exécution. Si c'est le cas, il vérifie si votre volume AFP est déjà monté, et le fait si ce n'est pas le cas.

Vous devrez configurer le script avant de l'exécuter pour la première fois, voir les variables en haut du script. VOLUMENAME est le nom du dialogue normal de connexion AFP ( ssd dans ce cas) :

Connection Dialog

Pour vérifier si la chose fonctionne en principe : Disons que le script est sur le Desktop dans Type de terminal cd ~/Desktop/ alors ./mount_afp_when_itunes_running.sh .

En cas de Permission denied , définissez les permissions du fichier de sorte que vous puissiez exécuter le script avec chmod 755 mount_afp_when_itunes_running.sh puis réessayez.

Enfin, si tout fonctionne, vous pourrez alors lancer ce script. automatiquement via un agent de lancement .

0voto

myhd Points 3320

C'est peut-être un peu hors sujet, mais il n'est pas nécessaire de faire un lien symbolique entre les répertoires iTunes ! Pour sélectionner n'importe quelle bibliothèque iTunes se trouvant n'importe où sur n'importe quel disque, il suffit de maintenir la touche immédiatement après avoir lancé iTunes.

enter image description here

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X