Il existe plusieurs façons d'exécuter des scripts lors de la connexion / déconnexion sous OS X , certains sont plus récents et ne s'appliquent qu'à 10.5 et supérieur, certains sont plutôt obsolètes, mais le plus rapide serait d'ajouter un Login Hook
.
Créez d'abord le script que vous souhaitez exécuter. Ouvrez un terminal et entrez:
touch ~/script.sh
open -e !$
Cela ouvrira un éditeur de texte. Entrez le script, par exemple avec le contenu suivant:
#!/bin/sh
# insert your script here
Enregistrez le fichier. Dans votre terminal, exécutez:
chmod +x ~/script.sh
Cela rendra le fichier exécutable. Maintenant, ajoutons-le comme un crochet:
sudo defaults write com.apple.loginwindow LoginHook /usr/local/bin/script.sh
Il y a aussi la Logout Hook
contrepartie:
sudo defaults write com.apple.loginwindow LogoutHook /usr/local/bin/script2.sh
J'ai testé cela sur OS X 10.6, et cela devrait fonctionner même jusqu'à 10.8. Gardez à l'esprit que le script s'exécute en tant que root
et il n'y a qu'un seul crochet pour la connexion et la déconnexion respectivement.
Pour annuler tout cela, entrez
sudo defaults delete com.apple.loginwindow LoginHook
sudo defaults delete com.apple.loginwindow LogoutHook
Notez que cette méthode n'est pas recommandée pour le déploiement ou quoi que ce soit, mais si vous l'utilisez uniquement comme indiqué dans votre question, cela ne devrait pas poser de problème.
Les hooks de connexion ont été dépréciés en 10.4 en faveur de launchd. Pour exécuter un script à la connexion, enregistrez un plist comme celui-ci sous
~/Library/LaunchAgents/test.plist
. Il est chargé lors de la prochaine connexion même si vous ne lancez paslaunchctl load ~/Library/LaunchAgents/test.plist
.Pour plus d'informations, voir
man launchd.plist
et cet article de blog .la source
Pour que ces crochets fonctionnent en 10.10, vous devrez faire ceci:
Ouvrez le
/etc/ttys
fichier: dans le Finder, choisissez Aller au dossier dans le menu Aller, tapez/etc/
, puis cliquez sur Aller.Dans la fenêtre résultante, ouvrez le
ttys
fichier dans votre éditeur de texte préféré (tel que TextEdit).Recherchez une ligne qui se lit comme suit:
console "/System/Library/CoreServices/loginwindow.app/Contents/MacOS/loginwindow" vt100 on secure window=/System/Library/CoreServices/WindowServer onoption="/usr/libexec/getty std.9600"
Modifiez cette ligne pour qu'elle se lise comme suit (il n'y a pas de coupure dans cette ligne):
console "/System/Library/CoreServices/loginwindow.app/Contents/MacOS/loginwindow -LoginHook /path/to/script" vt100 on secure window=/System/Library/CoreServices/WindowServer onoption="/usr/libexec/getty std.9600"
c'est-à-dire, ajoutez (où est le chemin d'accès complet au script que vous souhaitez exécuter lorsqu'un utilisateur se connecte) juste avant la deuxième marque quote ( ).
-LoginHook /path/to/script
/path/to/script
"
Enregistrez le fichier.
Assurez-vous que l'éditeur de texte que vous utilisez pour modifier ce fichier ne coupe pas la ligne ci-dessus en plusieurs lignes.
ou suivez les instructions complètes ici:
http://support.apple.com/en-ca/HT2420
la source