Submit Hint Search The Forums LinksStatsPollsHeadlinesRSS
14,000 hints and counting!

Recover from WindowServer crashes using one machine System
This is a rather simple detail, but I haven't seen anyone make note of it. In Linux, if the graphical user interface bails on you, you can switch to a different virtual terminal to kill it. Prior to 10.3, you couldn't do that. If the WindowServer died on you, you had to either ssh in remotely, or forcibly restart your machine.

With 10.3 and Fast User Switching, this is no longer the case. The SystemUIServer process, which controlls the menu extras and fast user switching, is not dependent on the WindowServer. Therefore, when the WindowServer bails and you get nothing but a beachball, the right side of the menu bar still works, and you can switch users. Then, from a different login, you can kill the runaway WindowServer process (using Terminal or Activity Monitor).

Note that this only helps when the spinning beachball is caused by the WindowServer. If the kernel is bailing on you such that you can't even ssh in to your machine, then switching users is not going to help and is probably not going to work.

As a side hint: if the right side of your menu bar stops working but everything else is running, kill the SystemUIServer and it will come right back.
    •    
  • Currently 3.25 / 5
  • 1
  • 2
  • 3
  • 4
  • 5
  (4 votes cast)
 
[15,806 views]  

Recover from WindowServer crashes using one machine | 4 comments | Create New Account
Click here to return to the 'Recover from WindowServer crashes using one machine' hint
The following comments are owned by whoever posted them. This site is not responsible for what they say.
Recover from WindowServer crashes using one machine
Authored by: pavao on Mar 03, '04 01:08:55PM

When several users are logged in at the same time, there is only one instance of the WindowServer process running, and this instance belongs to the currently active user. I guess the simultaneous graphical logins/sessions in MacOS X are implemented in a somewhat strange way. While in Linux (and other UNIX OSs) you must have several X servers running at the same time, each belonging to a logged in user and associated with a different virtual console, in MacOS X the only WindowServer process running appears to get associated to the active user dynamically! So, this process must be taking care of ALL the logged in users' windows! How can one recover the system if this process starts acting crazy? Or is this whole idea I described just plain wrong?



[ Reply to This | # ]
Recover from WindowServer crashes using one machine
Authored by: dfbills on Mar 03, '04 07:13:03PM

I've noticed the same thing. The multi-user login doesn't seem to work as killing the window server takes down both environments.



[ Reply to This | # ]
Recover from WindowServer crashes using one machine
Authored by: mike666 on Mar 04, '04 03:55:25PM

I discovered recently that a startup process that was being launched from ~/Library/Preferences/loginwindow.plist was causing a hang at shutdown or restart - I would just be left with my desktop picture and a cursor and doing a force-quit key combo would just bring up an empty process window. The solution other than three-keying or ssh-ing was to hit the power button (or ctrl-eject if you don't have a laptop), hit the Sleep button, and then wake it up. If you have the security settings set to authenticate when waking up from sleep, the authentication dialog has a Switch Users button. You can then log in as a different user and do a restart (and authenticate to terminate your other session) or dig around and see what's causing the problem. I've found a lot of UI hangs can be gotten around by getting rid of loginwindow.plist or com.apple.loginwindow.plist. Background apps can still be a bear, even in OSX...



[ Reply to This | # ]
Recover from WindowServer crashes using one machine
Authored by: Detrius on Mar 04, '04 06:11:58PM

I'm sorry for the confusion. It's been quite a while since I've had to do this. I have done this before. You can switch users when the WindowServer process appears to be crashed. There is always a loginwindow process running for each user logged in, though it isn't necessarily owned by that user. If you kill the loginwindow process that is controlling the "crashed" user's WindowServer, then you will regain access to the machine, though oddly, there does appear to be only one WindowServer process.

Note that the higher the PID, the later the process was opened (unless the system has been running for so long that it has rolled back around).

I hope that clarifies. Kill the loginwindow process for the user, not the WindowServer.



[ Reply to This | # ]