El 27/01/14 17:50, Reuti escribió:
Hi,

Am 27.01.2014 um 17:26 schrieb Txema Heredia:

I have been trying to use modulefiles from my compute nodes with no avail.

When a job starts, the modulecmd command is in the path, but the module function is nowhere to be found. I 
have tried to add calls to /etc/profile.d/modules.sh in both /etc/bashrc and ~/.bashrc, and even setting the 
queue shell to "/bin/bash -l" with no luck (it is not a valid shell). The only mens to have access 
to the "module" function is either to add ". /etc/profile.d/modules.sh"
This could also be done in a "starter_method" of the queue which calls the real 
script:

#!/bin/bash
. /etc/profile.d/modules.sh
exec "${@}"


at the beginning of my job script, or either log into the compute node in an 
interactive session and there softstop and restart the sge_execd daemon.

What am I missing? How can I have the module function available in my jobs?
Any of the profiles are only sourced in case of "shell_start_mode posix_compliant" in the 
queue definition and listing bash in `qconf -mconf` "login_shells".

The module command is a function, which needs to be defined. For serial jobs it 
should work to define the function in the submitting session, export the 
function and use `qsub -v module ...`.

-- Reuti
Oh, gosh!

After 3 hours testing and writing a 3-pages email, I just understood the last part of your email. I realized that I had bash defined as the queue shell, but not as a login_shell in the global configuration. Now modules simply work, without using "bash -l" nor sourcing the modules.sh file, etc., and with no need of the starter_method.

Thank you very much!


PS: Even though I finally didn't need the starter_method script, I found it a very interesting concept. Do you have any suggestions (or cool tricks) about what to do with it?
_______________________________________________
users mailing list
[email protected]
https://gridengine.org/mailman/listinfo/users

Reply via email to