diff --git a/doc/man/man1/srun.1 b/doc/man/man1/srun.1 index ec947aa0281ace351bd95b679d6173a15705b0b7..c578654068a903c1aecc8bd4f3257e721e3a473c 100644 --- a/doc/man/man1/srun.1 +++ b/doc/man/man1/srun.1 @@ -1,10 +1,10 @@ -.TH "srun" "1" "SLURM 2.4" "October 2011" "SLURM Commands" +.TH "srun" "1" "SLURM 2.5" "July 2012" "SLURM Commands" .SH "NAME" srun \- Run parallel jobs .SH "SYNOPSIS" -\fBsrun\fR [\fIOPTIONS\fR...] \fIexecutable \fR[\fIargs\fR...] +\fBsrun\fR [\fIOPTIONS\fR...] \fIexecutable \fR[\fIargs\fR...] .SH "DESCRIPTION" Run a parallel job on cluster managed by SLURM. If necessary, srun will @@ -1839,6 +1839,13 @@ The value will be set component types listed in \fBSLURM_TOPOLOGY_ADDR\fR. Each component will be identified as either "switch" or "node". A period is used to separate each hardware component type. +.TP +\fBSRUN_DEBUG\fR +Set to the logging level of the \fBsrun\fR command. +Default value is 3 (info level). +The value is incremented or decremented based upon the \-\-verbose and +\-\-quiet options. + .TP \fBMPIRUN_NOALLOCATE\fR Do not allocate a block on Blue Gene systems only. diff --git a/src/srun/srun.c b/src/srun/srun.c index d5ddb08f386e9888b5873f14f666a2a5a5efe45a..6dac1300ee712bf68f2e8aa3649f8f4e005c82ea 100644 --- a/src/srun/srun.c +++ b/src/srun/srun.c @@ -592,25 +592,33 @@ _print_job_information(resource_allocation_response_msg_t *resp) xfree(str); } -/* Set SLURM_UMASK environment variable with current state */ +/* Set some environment variables with current state */ static int _set_umask_env(void) { - char mask_char[5]; - mode_t mask; + if (!getenv("SRUN_DEBUG")) { /* do not change current value */ + /* NOTE: Default debug level is 3 (info) */ + int log_level = LOG_LEVEL_INFO + _verbose - opt.quiet; - if (getenv("SLURM_UMASK")) /* use this value */ - return SLURM_SUCCESS; + if (setenvf(NULL, "SRUN_DEBUG", "%d", log_level) < 0) + error ("unable to set SRUN_DEBUG in environment"); + } + + if (!getenv("SLURM_UMASK")) { /* do not change current value */ + char mask_char[5]; + mode_t mask; - mask = (int)umask(0); - umask(mask); + mask = (int)umask(0); + umask(mask); - sprintf(mask_char, "0%d%d%d", - ((mask>>6)&07), ((mask>>3)&07), mask&07); - if (setenvf(NULL, "SLURM_UMASK", "%s", mask_char) < 0) { - error ("unable to set SLURM_UMASK in environment"); - return SLURM_FAILURE; + sprintf(mask_char, "0%d%d%d", + ((mask>>6)&07), ((mask>>3)&07), mask&07); + if (setenvf(NULL, "SLURM_UMASK", "%s", mask_char) < 0) { + error ("unable to set SLURM_UMASK in environment"); + return SLURM_FAILURE; + } + debug ("propagating UMASK=%s", mask_char); } - debug ("propagating UMASK=%s", mask_char); + return SLURM_SUCCESS; }