Déconnecter un autre utilisateur sans le basculer d'abord vers cet utilisateur

27

Ma femme utilise des comptes séparés et un changement rapide d'utilisateur sur un MBP exécutant 10.6. Parfois, je veux la déconnecter pour libérer de la mémoire RAM, mais j'aimerais éviter de se connecter comme elle, de se déconnecter, puis de se reconnecter comme moi.

J'ai vu une solution de terminal ... y a-t-il un meilleur moyen? Merci!

Richard Herron
la source
5
Vous devez mieux définir "existe-t-il un meilleur moyen". Pour moi, pas grand chose (du point de vue informatique), c'est mieux qu'un terminal. Si vous voulez une application, enveloppez simplement la commande terminal dans une application automator ou applescript.
2
@mankoff, bon point! Mais ce n’est pas un forum Arch Linux, supposons donc que je recherche une interface graphique / une solution intégrée :). Mais vous avez raison, je peux juste écrire un script shell.
Richard Herron
2
Voici le lien vers la solution de script (je l’avais déjà vu avant de poster, mais c’est à partir de 2005, donc j’ai supposé qu’à présent cette fonctionnalité simple devait avoir été intégrée à l’interface graphique). forums.macrumors.com/showthread.php?t=118545
Richard Herron
Il n'y a pas de solution graphique intégrée à ma connaissance ...
Robert S Ciaccio
OK, merci à tous! Quand j'écris un bon script, je le posterai ici.
Richard Herron

Réponses:

22

En utilisant le terminal, vous pouvez tuer son loginwindowprocessus et tous les programmes ouverts seront fermés ... mais cela lui fera perdre tout travail non sauvegardé! En fait, c’est la raison même pour laquelle vous devez vous connecter en tant que telle pour se déconnecter: lorsque vous vous connectez en tant que telle, tous ses programmes ont à nouveau accès à action avant de vous déconnecter.

Si vous êtes sûr qu'elle ne dispose que d'un navigateur Web, d'iTunes, etc., et non de Pages, Word, Photoshop ou de tout autre élément contenant des documents, vous pouvez essayer depuis le terminal:

kill `ps awwwwux | grep her_short_username | grep loginwindow | grep -v grep | awk "{ print \$2 }"`

Sur OSX 10.10.4: (légère modification à partir du dernier commentaire):

export pn=`ps awwwwux | awk '/her_short_username/ && /loginwind[o]w/ { print $2 }'`
sudo kill -9 $pn
Josh
la source
1
D'accord avec l'avertissement que si vous ne vous connectez pas pour voir ce qu'elle fait, vous ne savez pas ce que vous pourriez lui en coûter en la déconnectant.
Michael H.
Oui vous avez raison. La plupart du temps, c'est la navigation sur le Web ... Mais une fois, ça ne le sera pas! Merci!
Richard Herron
4
Si vous la force fin loginwindowpar Activity Monitor.appvous pourriez facilement coup d' oeil en même temps que d' autres processus , elle a laissé ouverte.
Jari Keinänen le
1
De toute façon, si vous finissez par exécuter Awk, les grepcommandes multiples peuvent facilement être évitées. ps awwwwux | awk '/her_short_username/ && /loginwind[o]w/ { print $2 } | xargs killet voir aussi iki.fi/era/unix/award.html#grep
triplee
1
corrigez simplement une faute de frappe dans votre commande mise à jour, les lectures sududoivent être lues sudo.
Hoss
18

Vous pouvez utiliser le moniteur d'activité pour déconnecter un autre utilisateur en interrompant son processus de connexion:

  1. Exécuter le moniteur d'activité
  2. Dans le filtre en haut à droite, tapez loginwindow
  3. Cliquez sur la ligne avec le nom de l' utilisateur dans la colonne Utilisateur.
  4. Cliquez sur Quitter le processus , puis sur Forcer à quitter et tapez votre mot de passe.

Ceci est juste une version plus agréable (?) De la réponse de Josh .

Avant l'étape 2, vous pouvez passer en revue les processus en cours d'exécution des autres utilisateurs pour déterminer s'ils exécutent des applications susceptibles de perdre des données lors de la déconnexion.

Bennett McElwee
la source
J'ai essayé cela et je vois toujours les processus des autres utilisateurs en cours d'exécution dans le moniteur d'activité. Certes, le compte semble déconnecté dans le menu de changement d'utilisateur, mais il ne semble pas que ce soit vraiment la même chose que se déconnecter.
Gorb
7

Cette commande est plus simple que celle suggérée et aura le résultat souhaité de tuer tous les processus de l'utilisateur (je devais l'exécuter deux fois)

sudo pkill -9 -u user

Si vous souhaitez simplement supprimer le processus loginwindow pour cet utilisateur, vous pouvez procéder comme suit:

sudo pkill -9 -u user loginwindow

Ulukai
la source
Il me semble que cette réponse est nettement meilleure et plus idiomatique (du point de vue de l'administrateur système unix) que les autres.
Gregg Leventhal
2

Je pense que le moyen le plus simple de le faire est: sudo killall -9 -u wifes_name

Mempman
la source
Sous MacOS Mojave, c’est la seule solution après avoir essayé de nombreuses solutions qui non seulement ont tué le processus LoginWindow, mais également de nombreux autres processus appartenant à cet utilisateur. Tuer le processus LoginWindow uniquement pour cet utilisateur n'a pas tué beaucoup d'autres processus démarrés par cet utilisateur. Cette solution (en remplaçant par le nom de ma femme) éliminait tous les processus lancés par son identifiant. Cela revient à redémarrer la machine et à vous connecter vous-même.
i-CONICA
-1

À mon avis, la perte possible de données surpasse de loin le gain possible en RAM.

De plus, cela faisait longtemps qu'Unix n'était pas en mesure d'échanger de la mémoire sur un disque lorsqu'un processus était inactif.

mouviciel
la source
2
Un problème est que lorsqu'un utilisateur est déconnecté, ses processus peuvent ne pas être inactifs. Ils peuvent être en train de mâcher du processeur et de la mémoire. Les jeux semblent particulièrement mauvais à cet égard.
Bennett McElwee
2
La question mentionne l'épouse, mais il y a en réalité un cas encore meilleur: lorsqu'un enfant a dépassé sa limite de temps pour la journée et ne joue qu'à des jeux et fait d'autres choses qui ne nécessitent pas d'économies. Maintenant, non seulement vous devez vous connecter en tant qu'enfant, mais vous devez également prendre le temps de les déconnecter.
Michael
@ Michael C'est exactement mon cas d'utilisation. :)
Bennett McElwee