I recently switched to bash. I like to have X start upon login if I'm on the console, then have the initial shell exit. When I used tcsh as my login shell, I used this in my .login:
# Start the X server if on the console. set delay = 3 if (`tty` == /dev/tty1) then echo "Starting X11 in $delay seconds..." sleep $delay && (ssh-agent startx >&! /tmp/X11.out-$USER) & logout endif And all was well. But I can't seem to background the same thing in bash. I don't have a .bash_login, this is in my .bash_profile: # Start the X server if on the console. delay=3 if [ $(tty) = /dev/tty1 ]; then echo "Starting X11 in $delay seconds..." if sleep $delay; then ssh-agent startx >/tmp/X11.out-$USER 2>&1 & logout fi fi But I get the error: X: you are not authorised to run the X server If I don't background the command, it works. But I'd like to logout from tty1, so as not to have a shell sitting there for anyone to use by switching to that virtual console while X is running. If I run the same command from the console, it works fine, in the foreground or in the background. I've tried all kinds of variations, with subshells, nohup, without ssh-agent, etc., to no avail. What's different about bash in this regard. Any suggestions? Thanks... -- Tres Hofmeister <[EMAIL PROTECTED]> http://www.rap.ucar.edu/staff/tres/ Research Applications Program National Center for Atmospheric Research