<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css" style="display:none;"> P {margin-top:0;margin-bottom:0;} </style>
</head>
<body dir="ltr">
<div style="font-family: "Courier New", monospace; font-size: 12pt; color: rgb(0, 0, 0); background-color: rgb(255, 255, 255);" class="elementToProof">
Not sure if this will help.  It has which user will execute the scripts</div>
<div style="font-family: "Courier New", monospace; font-size: 12pt; color: rgb(0, 0, 0); background-color: rgb(255, 255, 255);" class="elementToProof">
<br>
</div>
<div style="font-family: "Courier New", monospace; font-size: 12pt; color: rgb(0, 0, 0); background-color: rgb(255, 255, 255);" class="elementToProof ContentPasted0">
<a href="https://slurm.schedmd.com/prolog_epilog.html" id="LPNoLPOWALinkPreview">https://slurm.schedmd.com/prolog_epilog.html</a><br>
</div>
<div class="_Entity _EType_OWALinkPreview _EId_OWALinkPreview _EReadonly_1"></div>
<br>
<div id="signature_bookmark"></div>
<div id="appendonsend"></div>
<div style="font-family:"Courier New",monospace; font-size:12pt; color:rgb(0,0,0)" class="elementToProof">
Maybe the variable isn't set for the user executing the prolog/epilog/taskprolog</div>
<div style="font-family:"Courier New",monospace; font-size:12pt; color:rgb(0,0,0)" class="elementToProof">
<br>
</div>
<div style="font-family:"Courier New",monospace; font-size:12pt; color:rgb(0,0,0)" class="elementToProof">
Jeff</div>
<div style="font-family:"Courier New",monospace; font-size:12pt; color:rgb(0,0,0)" class="elementToProof">
<br>
</div>
<hr tabindex="-1" style="display:inline-block; width:98%">
<div id="divRplyFwdMsg" dir="ltr"><font face="Calibri, sans-serif" color="#000000" style="font-size:11pt"><b>From:</b> slurm-users <slurm-users-bounces@lists.schedmd.com> on behalf of Davide DelVento <davide.quantum@gmail.com><br>
<b>Sent:</b> Saturday, October 29, 2022 9:37 AM<br>
<b>To:</b> slurm-users@schedmd.com <slurm-users@schedmd.com><br>
<b>Subject:</b> [slurm-users] Prolog and job_submit</font>
<div> </div>
</div>
<div class="BodyFragment"><font size="2"><span style="font-size:11pt">
<div class="PlainText">My problem: grant licensed software availability to my users only if<br>
they request it on slurm; for now with local licenses.<br>
<br>
I wrote a job_submit lua script which checks job_desc.licenses and if<br>
it contains the appropriate strings it sets an appropriate<br>
SOMETHING_LICENSE_REQ environmental variable.<br>
<br>
This part works, I can see the environmental variable correctly set in<br>
the jobs that require the license.<br>
<br>
Now this licensed software is a bit tricky to manage, so the way that<br>
I thought to use it is simply to make its binary disappear from the<br>
nodes when not requested, with a prolog and epilog scripts which copy<br>
it from a location in the shared filesystem accessible only by root.<br>
Simply a copy during the prolog and a delete during the epilog.<br>
<br>
Something like this:<br>
<br>
if [[ $SOMETHING_LICENSE_REQ == 1 ]]; then<br>
    # copy the binary<br>
fi<br>
<br>
After banging my head to make the prolog run (executable bit and full<br>
path required, and not said so in the documentation and error logs<br>
being cryptic about it) I am finally able to see it running.... only<br>
to find out that the SOMETHING_LICENSE_REQ environmental variable is<br>
not set, despite the documentation at<br>
<a href="https://urldefense.com/v3/__https://slurm.schedmd.com/prolog_epilog.html__;!!LkSTlj0I!GeYFMK5LTz38C-Y5efzywysYqnEPMq4Rq9Nj77WE3gOEYPJ-rRbnBR6alpC8cPi6XJbsBhkAgFOFbEIzzx4ItgH_Ssba$" data-auth="NotApplicable">https://urldefense.com/v3/__https://slurm.schedmd.com/prolog_epilog.html__;!!LkSTlj0I!GeYFMK5LTz38C-Y5efzywysYqnEPMq4Rq9Nj77WE3gOEYPJ-rRbnBR6alpC8cPi6XJbsBhkAgFOFbEIzzx4ItgH_Ssba$</a>  
 stating<br>
<br>
> The task prolog is executed with the same environment as the user tasks to be initiated.<br>
<br>
Now, I'd be very happy to do this copy from the job_submit, but that<br>
is run on the head node (I checked) and so I can't do that. It would<br>
seem strange that the job_submit is run after the prolog, since the<br>
latter runs on the compute node (I checked that too).<br>
<br>
Moreover, I also verified with additional environmental variables<br>
which I set at submit time are available for the user job correctly,<br>
but not in the prolog.<br>
<br>
So either I misinterpreted that "same environment as the user tasks"<br>
or there is something else that I am doing wrong.<br>
<br>
Does anybody have any insight?<br>
<br>
</div>
</span></font></div>
</body>
</html>