Search code examples
slurm

scontrol all jobs in user account


I am trying to hold all jobs submitted from my account. However, scontrol hold only takes in array and I have many arrays. Is there an alternative command like scancel -u user?

Edit1: If iterating all job id is the only way, this is my method:

squeue -u user | awk '{print $1;}' | while read jobid; do scontrol hold $jobid; done

Solution

  • While piping formatted text to sh is clever, I would probably do something like this:

    squeue -u <user> --format "%i" --noheader | xargs scontrol hold
    

    or

    sacct --allocation --user=<user> --noheader --format=jobid | xargs scontrol hold
    

    If you wanted to filter by state, you could do that as well:

    squeue -u <user> --format "%i" --noheader --states=PENDING | xargs scontrol hold
    

    or

    sacct --allocation --user=<user> --noheader --format=jobid --state=PENDING | xargs scontrol hold
    

    source: Slurm man pages