Take the 2-minute tour ×
Server Fault is a question and answer site for system and network administrators. It's 100% free, no registration required.

Just curious mostly.

Say I have someone logged into their Mac in the normal way -- ie. a graphical logon -- and the system becomes mostly unresponsive and I need to log them out.

I can reboot the system easily enough (and if things lock up it may be warranted) using 'sudo reboot' or the 'shutdown' command, but, is it possible to simply log them out remotely, as can be done through Apple Remote Desktop?

Edit: Is there a nice way to do it, that lets them save files or possibly even cancel the logout?

share|improve this question

5 Answers 5

I'm not sure of a way to kill the user's login and allow them to possibly cancel that action or save file, though most apps under Lion will autosave. I've been having an issue where the screensaver under Lion hangs (started when I upgraded to OSX 10.7.4 - see https://discussions.apple.com/message/18398072) and the way I deal with it is as follows.

SSH into the Mac in question (this of course assumes you can do this) and

ps ax | grep [W]indowServer

this will give you the process ID of the WindowServer. Then

sudo kill -HUP *{the PID from the previous command}*

The Mac will wait a few moments while it does what it needs to do, then return you back to the Login screen.

share|improve this answer
    
This is what I needed :) –  JoshP Jul 11 '12 at 14:15

This almost works:

echo 'tell application "System Events" ^ log out ^ keystroke return ^ end tell' | tr '^' '\n' | osascript

If you don't mind waiting for the login window timer to countdown, this is easier:

osascript -e 'tell application "System Events" to log out'

Now, while you can log yourself out this way (from an SSH session), you'll get:

_RegisterApplication(), FAILED TO establish the default connection to the WindowServer, _CGSDefaultConnection() is NULL.

If you try to do it to someone else (even with sudo).

share|improve this answer

Find their WindowServer or login process:

grep WindowServer

Find the pid of the user's process

sudo kill -9

This assumes you're an admin on their computer.

share|improve this answer

If you enable the ssh sever (remote login in sharing preferences dialog) you will be able to ssh to the Mac from another machine and issue any command you want.

For example: shutdown -r now

EDIT:

sudo kill WindowServer

This will log the user out.

share|improve this answer
    
Presuming I've 'ssh'ed into the box -- can I log them out without rebooting? –  Clinton Blackmore May 20 '09 at 15:41
2  
sudo kill WindowServer This will log the user out. –  Garry Harthill May 20 '09 at 16:00

You could do a sort of:

killall -u <username>

But that is really dirty. Or just kill their logon process. This would pretty much be like having a windows box blue screen on you though. They would lose any unsaved work, etc.

I can't really think of any other way to do it more gracefully though.

share|improve this answer
1  
May have to be prefixed with "sudo" –  Brent May 20 '09 at 15:43

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.