[slurm-users] run bash script in spank plugin

Tueur Volvo huitre39 at gmail.com
Mon Jun 4 08:15:53 MDT 2018


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

> Tueur what are you trying to achieve here?  The example you give is
> touch /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
>
> On 4 June 2018 at 15:20, Tueur Volvo <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>:
>>
>>> 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/d59ec199/attachment-0001.html>


More information about the slurm-users mailing list