J'ai cherché à exécuter quelques commandes de nettoyage lorsqu'un utilisateur se déconnecte.Cependant, l'ancienne fonctionnalité de déconnexion, bien qu'elle fonctionne toujours, est obsolète depuis un certain temps et ne sera peut-être pas avec nous plus longtemps.
Malheureusement, bien qu'il launchd
offre une alternative pratique aux crochets de connexion, il n'y a pas de remplacement aussi évident pour les crochets de déconnexion.
J'ai déjà expérimenté la création d'un script shell qui est lancé lors de la connexion et qui se met simplement en veille jusqu'à ce qu'un signal d'arrêt soit reçu, mais cela ne semble pas fonctionner (le script ne reçoit jamais le signal pendant le fonctionnement normal).
Sinon, je ne sais pas quelle serait la meilleure façon d'exécuter une commande rapide lors de la déconnexion? Je sais qu'il existe des utilitaires tiers qui peuvent le faire, mais existe-t-il une façon "correcte" de le faire?
line 8: syntax error near unexpected token ;'
(avec une tombe avant le point-virgule)Vous pouvez utiliser iHook pour exécuter des hooks de connexion / déconnexion, ce qui, selon moi, fonctionne toujours pour les hooks de connexion et de déconnexion non interactifs écrits en Bash et Python sur Yosemite.
http://rsug.itd.umich.edu/software/ihook/
la source
Si d'autres personnes qui arrivent ici à partir des moteurs de recherche ne se soucient pas d'utiliser un hook de déconnexion, exécutez par exemple:
sudo defaults write com.apple.loginwindow LogoutHook '~/.logouthook';echo $'#!/usr/bin/env bash\n\nsay a'>~/.logouthook;chmod +x ~/.logouthook
Il
~/.logouthook
est ensuite exécuté la prochaine fois que vous vous déconnectez.La valeur de la
LogoutHook
clé doit être un chemin d'accès à un exécutable et non une commande shell. Ladefaults
commande se modifie/var/root/Library/Preferences/com.apple.loginwindow.plist
.la source
launchd
, juste une honte qu'il n'a pasRunBeforeUnload
ou une option similaire .Je ne peux pas non plus faire fonctionner l'élément de déconnexion de launchd dans 10.10.1, mais la clé LogoutHook dans "com.apple.loginwindow.plist" de root fonctionne bien. Y a-t-il d'autres exemples pour la méthode launchd?
Quoi qu'il en soit, j'ai écrit un AppleScript pour tuer le volume du système à la déconnexion afin que le carillon de démarrage ne soit pas entendu au prochain démarrage. Ce que je n'ai pas trouvé, ce sont les détails de la gestion de plusieurs commandes de déconnexion basées sur une seule clé LogoutHook, ou s'il est possible de stocker plusieurs clés LogoutHook, donc je suis toujours intéressé par la méthode Launchd, qui pourrait être gérée avec Lingon, ou même Lingon 3, qui a une portée beaucoup plus étroite que l'original (vraisemblablement pour exister dans l'App Store).
la source
sh
) donc il doit s'agir d'un fichier exécutable, je le noterai dans ma réponse.