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

Reply via email to