Nous savons tous que Mac OS X possède la fonctionnalité très utile des éléments de connexion qui vous permet, entre autres, de configurer des applications / scripts à exécuter lorsque vous vous connectez.
Je cherche un moyen de configurer une liste de scripts / applications qui s'exécutent lorsque je me déconnecte . Une liste «Éléments de déconnexion», si vous voulez.
Fondamentalement, je veux écrire pour moi quelques petits scripts de nettoyage qui s'exécuteront automatiquement lorsque je me déconnecte ou que je m'arrête.
Donc, je cherche un moyen de déclencher automatiquement un script (ou, idéalement, une liste d'entre eux) lorsque je me déconnecte. La déconnexion attendrait la fin des scripts (tout comme la déconnexion attend que vous cliquiez sur Enregistrer si une application le demande).
Existe-t-il un moyen de déclencher automatiquement un ou plusieurs scripts lorsque je me déconnecte de Mac OS X?
la source
Réponses:
Les hooks de déconnexion ont été dépréciés en 10.4 , mais ils fonctionnent toujours à partir de 10.9.
La valeur de la clé LogoutHook ne peut être qu'un chemin d'accès à un exécutable et non une commande shell. Le hook de déconnexion est exécuté en tant que root.
La commande par défaut modifie /var/root/Library/Preferences/com.apple.loginwindow.plist. L'ajout d'une clé LogoutHook à /Library/Preferences/com.apple.loginwindow.plist ne fonctionne pas.
Si un hook de déconnexion prend suffisamment de temps pour s'exécuter, un écran gris s'affiche jusqu'à ce que le hook de déconnexion se termine. Il ne semble pas y avoir de limite de temps après laquelle les hooks de déconnexion sont forcés de se terminer.
Je n'ai pas trouvé de moyen d'exécuter des programmes de déconnexion de manière fiable avec launchd. Lorsque j'ai essayé d'intercepter des signaux comme EXIT, le code dans l'interruption n'a été exécuté que lorsque je me suis déconnecté de la fenêtre de connexion et non lorsque j'ai arrêté ou redémarré.
la source
sh
(il crée ce fichier .txt). J'ai enregistré le script sous /etc/rc.shutdown.local, et je l'ai ajouté avecdefaults
comme vous l'avez dit. Aucun de ces fichiers n'était déjà là. Est-ce que je fais quelque chose de mal? Merci!En fait, il existe un moyen:
Pour le cacher du Dock:
la source
Script Timer est un bon choix pour cela. Il peut s'exécuter à la déconnexion, à la connexion et bien plus encore. J'irais avec cela pour une solution simple et facile à utiliser. Il a une interface graphique simple:
Il y a deux choses que vous devez noter sur Script Timer. Premièrement, ce n'est pas gratuit. Cela coûte 12 $, mais je pense personnellement que ça vaut le coup. Deuxièmement, il n'est pas entièrement compatible avec Lion, mais ils ont promis une mise à jour gratuite dès qu'ils l'auraient rendu compatible.
la source
Vous pouvez également créer une application Mac à partir de votre script en utilisant quelque chose comme Platypus , puis l'ajouter aux éléments de connexion comme n'importe quelle autre application.
la source
Power Manager peut exécuter un script lorsqu'un utilisateur se déconnecte. Il s'agit d'un produit commercial et il prend en charge les dernières macOS.
Versions antérieures requises à l'aide de l'éditeur d'événements , mais une tâche Assistant Planification est désormais incluse pour exécuter des scripts lors de la connexion et de la déconnexion.
J'ai écrit Power Manager, alors n'hésitez pas à poser des questions techniques sur sa mise en œuvre. Dans le cas d'événements déclenchés par déconnexion, Power Manager n'interroge pas les modifications de l'état de l'utilisateur mais est plutôt informé des modifications de l'utilisateur par macOS. Cette approche est plus efficace que d'avoir un script en boucle / polling.
la source