Je veux déconnecter mon Mac OS X à partir de la ligne de commande. Ma version d'OS X est 10.9. J'ai essayé la commande pkill -KILL -u uid
mais cette commande n'a pas fonctionné. Existe-t-il une commande qui peut être utilisée pour déconnecter un utilisateur du système en utilisant uniquement la ligne de commande, et pas AppleScript ?
Réponses
Trop de publicités?sudo launchctl bootout gui/$(id -u <username>)
ousudo launchctl bootout user/$(id -u <username>)
Remplacez username par le nom d'utilisateur de l'utilisateur cible ou remplacez le sous-shell entier par l'uid de l'utilisateur. Ceci indique à launchctl de détruire la session de connexion de l'utilisateur (gui se réfère spécifiquement à la session de connexion temporaire de l'utilisateur, user spécifie les processus d'arrière-plan de l'utilisateur).
Vous pouvez vous déconnecter sans le sudo
pour tester cela.
Notez que cela ne fonctionnera QUE sur MacOS 10.11.x ou plus récent (cf. launchctl help
pour en savoir plus)
Pour se déconnecter purement depuis le terminal (ou une session ssh distante), il suffit de tuer le processus loginwindow :
sudo pkill loginwindow
Vous pourriez faire preuve de fantaisie et spécifier l'utilisateur si plusieurs utilisateurs ont un processus de fenêtre de connexion, mais il s'agit d'un moyen simple et unique de mettre fin à la session graphique d'un utilisateur.
Cela a fonctionné pour moi dans le passé :
Déconnexion (avec confirmation)
osascript -e 'tell app "System Events" to log out'
Se déconnecter directement (sans confirmation)
osascript -e 'tell app "System Events" to «event aevtrlgo»'
ou
osascript -e 'tell application "loginwindow" to «event aevtrlgo»'
De cette façon, toute application en cours d'exécution sera remarquée et pourra se terminer en toute sécurité.
Un utilitaire agréable à ajouter à votre Terminal est la commande "logout", à utiliser comme suit :
logout UserName
Voici le mode d'emploi :
-
Modifier votre .bash_profile
nano ~/.bash_profile
-
Ajoutez cette ligne :
logout() {sudo launchctl bootout user/$(id -u "$1")}
-
Sauvegarder le fichier en appuyant sur
ctrl+x
-
Redémarrer le terminal
Vous êtes prêt à partir ;)
- Réponses précédentes
- Plus de réponses