[slurm-users] run bash script in spank plugin

Brian Andrus toomuchit at gmail.com
Mon Jun 4 09:37:22 MDT 2018


Seems like there are better approaches.

In this situation, I would use an epilogue script and give sudo access 
to the script. Check out https://slurm.schedmd.com/prolog_epilog.html

That would likely be much easier and fit into the methodology slurm uses.

Brian Andrus
Firstspot, Inc.


On 6/4/2018 8:11 AM, Tueur Volvo wrote:
> I would like to run a bash script or binary executable as root (even 
> if the user who started the job doesn't have root rights) at the end 
> of a job if I put an option in my spank plugin
>
> 2018-06-04 16:36 GMT+02:00 John Hearns <hearnsj at googlemail.com 
> <mailto:hearnsj at googlemail.com>>:
>
>     That kinnddd....  of...  defeats...  the.... purpose....  of a job
>     scheduler.
>     I am very sure that you know why you need this and you have a good
>     reason for doing it.  Over to others on the list, sorry.
>
>     On 4 June 2018 at 16:15, Tueur Volvo <huitre39 at gmail.com
>     <mailto:huitre39 at gmail.com>> wrote:
>
>         no I don't have dependency treated.
>
>         during the job, I would like to run a program on the machine
>         running the job
>         but I'd like the program to keep running even after the job ends.
>
>         2018-06-04 15:30 GMT+02:00 John Hearns <hearnsj at googlemail.com
>         <mailto:hearnsj at googlemail.com>>:
>
>             Tueur what are you trying to achieve here?  The example
>             you give istouch /tmp/newfile.txt'
>             I think you are trying to send a signal to another
>             process. Could this be 'Hey - the job has finished and
>             there is a new file for you to process'
>             If that is so, there may be better ways to do this. If you
>             have a post-processing step, then you can submit a job
>             whihc depends on the main job.
>             https://hpc.nih.gov/docs/job_dependencies.html
>             <https://hpc.nih.gov/docs/job_dependencies.html>
>
>             On 4 June 2018 at 15:20, Tueur Volvo <huitre39 at gmail.com
>             <mailto:huitre39 at gmail.com>> wrote:
>
>                 thanks for your answer, i try some solution but it's
>                 not work
>
>                 i try to add setsid and setpgrp for isolate my new
>                 process but slurm job sleep 6secondes and reboot my
>                 machine (i test with reboot command, but we can make
>                 other bash command, it's just example)
>
>                         pid_t cpid; //process id's and process groups
>
>                         cpid = fork();
>
>                         if( cpid == 0 ){
>                             setsid();
>                             setpgrp();
>                 execl("/bin/sh", "sh", "-c", "sleep 10; reboot1&", NULL);
>
>                         }
>                         wait(NULL);
>
>
>                 maybe i have a error in my code ?
>
>                 2018-05-31 9:37 GMT+02:00 Yair Yarom
>                 <irush at cs.huji.ac.il <mailto:irush at cs.huji.ac.il>>:
>
>                     Hi,
>
>                     I'm not sure how slurm/spank handles child
>                     processes but this might be
>                     intentional. So there might be some issues if this
>                     were to work.
>
>                     You can try instead of calling system(), to use
>                     fork() + exec(). If
>                     that still doesn't work, try calling setsid()
>                     before the exec(). I can
>                     think of situations where your process might still
>                     get killed, e.g. if
>                     slurm (or even systemd) kills all subprocesses of
>                     the "job", by
>                     looking at the cgroup. If that's the case, you'll
>                     need to move it to
>                     another cgroup in addition/instead of setsid().
>
>                         Yair.
>
>
>
>                     On Wed, May 30, 2018 at 5:16 PM, Tueur Volvo
>                     <huitre39 at gmail.com <mailto:huitre39 at gmail.com>>
>                     wrote:
>                     > Hello i have question, how run in background
>                     bash script in spank plugin ?
>                     >
>                     > in my spank plugin in function :
>                     slurm_spank_task_init_privileged
>                     >
>                     > i want to run this script :
>                     >
>                     > system("nohup bash -c 'sleep 10 ; touch
>                     /tmp/newfile.txt' &");
>                     >
>                     > i want to run in independant process this bash
>                     script, i don't want wait 10
>                     > seconde in my slurm plugin
>                     >
>                     > i have this code :
>                     > int slurm_spank_task_init_privileged (spank_t
>                     sp, int ac, char **av) {
>                     >
>                     > system("nohup bash -c 'sleep 10 ; touch
>                     /tmp/newfile.txt' &");
>                     >
>                     > return 0;
>                     >
>                     > }
>                     >
>                     > actualy it's not work, when slurm ending to run
>                     my job, he kill my nohup
>                     > command
>                     >
>                     > if i  had in my c code sleep 12, my bash script work
>                     >
>                     >
>                     > int slurm_spank_task_init_privileged (spank_t
>                     sp, int ac, char **av) {
>                     >
>                     > system("nohup bash -c 'sleep 10 ; touch
>                     /tmp/newfile.txt' &");
>                     >
>                     > sleep(12);
>                     >
>                     > return 0;
>                     >
>                     > }
>                     >
>                     > but i don't want to wait, i want to run my bash
>                     script in independant
>                     > process
>                     >
>                     > thanks for advance for your help
>                     >
>                     >
>                     >
>                     >
>
>
>
>
>
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.schedmd.com/pipermail/slurm-users/attachments/20180604/a5f440f6/attachment-0001.html>


More information about the slurm-users mailing list