I think X11's startup process involves a non-interactive bash login shell, which you're terminating before it has a chance to run anything. On Mar 18, 2009, at 5:32 PM, Grant Erickson wrote:
Arguably belatedly, I made the transition from Tiger to Leopard on my various machines yesterday.
In general, the transition seemed to go smoothly; however, some bumps have been encountered with X11 (Xquartz 2.1.5 - (xorg-server 1.3.0-apple22) (2.1.5)).
In particular, either interactively launching a command (e.g. xeyes) from Terminal.app or launching X11.app directly from the Finder, resulted in the popular:
3/18/09 5:12:07 PM com.apple.launchd[178] (org.x.startx) Throttling respawn: Will start in 10 seconds
error. After reading this list and consulting Google, I concluded that DISPLAY was not the problem and selectively began adding/removing dot (e.g. .profile, etc.) files from my home directory.
I eventually narrowed it down to my .profile. Within that file, I further narrowed it down to a few lines:
if [ -z "${PS1}" ] || [ -n "${ENVONLY}" ]; then exit 0 fi
If I have a .profile with these lines and only these lines, X11 will never start. If I simply change the above to:
if [ -z "${PS1}" ] || [ -n "${ENVONLY}" ]; then echo "Non-interactive" fi
Then X starts normally and whatever command that needed to use the display runs and realizes its windows, etc. I've been using this .profile for nearly two decades on all manner of systems including Sun OS, Solaris, Irix, Cygwin, HP/UX, Darwin, Linux, etc. and have never had a problem with the above logic. The whole script amounts to:
# Set umask
# Add some paths to PATH
# Exit if non-interactive
# Interactive setup
What is it about falling off the end of the profile that is OK (should amount to exit $?) whereas explicitly calling exit 0 causes X11 to choke in attempting to launch?