On Wed, Feb 1, 2012 at 1:32 PM, Rayson Ho <[email protected]> wrote:
> If you want to get the same behavior as your GE 6.2u6 cluster, then I
> think bash should be taken out from the login_shells.
>
> I look a 5 min look at the code, and I think currently there is no way
> to do what you want - so best way is to fix the bash profile and/or
> change the SGE config.
>
> BTW, what's in the bash profile that is causing this random job start
> directory problem??
Thanks for the info. I now have a solution to the problem.
When I ssh in to a machine I like to be directly cd'd to whatever
directory I was in the last time I was logged in to that machine. To
accomplish this, I have a function defined in my .bashrc overriding
exit:
function exit { mkdir -p $HOME/.path_history; pwd >
$HOME/.path_history/host.$HOSTNAME; builtin exit; }
So when I type "exit" at the shell, this function records the
directory that I'm exiting and stores that info in a host-specific
file ($HOME/.path_history/host.$HOSTNAME)
In my .bash_profile, I then check to see if that file exists. If it
does, the .bash_profile cd's me to the stored directory.
if [ -f $HOME/.path_history/host.$HOSTNAME ]; then
cd `cat $HOME/.path_history/host.$HOSTNAME`
fi
For some of my hosts, the $HOME/.path_history/host.$HOSTNAME file was
pointing to my home directory. So when a job started on those hosts,
it would cd to my home dir. If I subsequently ssh'd in to that machine
to try and debug the problem, when I exited the recorded directory
would be reset, causing more apparent non-determinism.
To solve the problem, I have wrapped the above code in my
.bash_profile to first check to see if I am in a grid job:
if [ -n "$JOB_ID" ]; then
# do stuff
else
if [ -f $HOME/.path_history/host.$HOSTNAME ]; then
cd `cat $HOME/.path_history/host.$HOSTNAME`
fi
fi
Thanks for the help debugging this! The problem now appears to be solved.
Cheers,
Lane
_______________________________________________
users mailing list
[email protected]
https://gridengine.org/mailman/listinfo/users