[slurm-users] run bash script in spank plugin

Tueur Volvo huitre39 at gmail.com
Mon Jun 4 07:20:07 MDT 2018


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>:

> 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> 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/a5617c41/attachment.html>


More information about the slurm-users mailing list