Slurm API(3)

NAME
slurm_suspend, slurm_suspend2, slurm_resume, slurm_resume2, slurm_requeue, slurm_requeue2, slurm_free_job_array_resp - Slurm suspend, resume and requeue functions

SYNTAX

#include <slurm/slurm.h>

int slurm_suspend (
    uint32_t job_id
);

int slurm_suspend2 (
        char * job_id_str,
        job_array_resp_msg_t **resp
);

int slurm_resume (
    uint32_t job_id
);

int slurm_resume2 (
        char * job_id_str,
        job_array_resp_msg_t **resp
);

int slurm_requeue (
        uint32_t job_id,
        uint32_t state
);

int slurm_requeue2 (
    char * job_id_str,
        uint32_t state,
        job_array_resp_msg_t **resp
);

void slurm_free_job_array_resp (
        job_array_resp_msg_t *resp
);

ARGUMENTS

job_id
    Slurm job ID to perform the operation upon in numeric form.

job_id_str
    Slurm job ID to perform the operation upon in string form. This is intended to be a single job. For job arrays, the job ID may be followed by an underscore and task ID values. For example: "123", "123_4", "123_4-6", "123_4,6,8", and "123_4-6,18". The functions using this option are designed primarily for use with job arrays so that separate error codes can be returned for each task of the job array.

resp
    Array of error codes and job IDs. Always use the slurm_free_job_array_resp function to release the memory allocated to hold the error codes.

state
    The state in which the job should be requeued valid values are:

    "0" If the job has to be requeued in JOB_PENDING state.

    "JOB_SPECIAL_EXIT"
        If the job has to be requeued in the special exit state and be held.

    "JOB_REQUEUE_HOLD"
        If the job has to be requeued in "JOB_PENDING" and held state.

DESCRIPTION

slurm_suspend
    Suspend the specified job.

slurm_suspend2
    Suspend the specified job or job array. Call the function slurm_free_job_array_resp to release memory allocated for the response array.

slurm_resume
    Resume execution of a previously suspended job.

slurm_resume2
    Resume execution of a previously suspended job or job array. Call the function slurm_free_job_array_resp to release memory allocated for the response array.

slurm_requeue
    Requeue a running or pending Slurm batch job. The job script will be restarted from its beginning, ignoring any previous checkpoint.

slurm_requeue2
    Requeue a running or pending Slurm batch job or job array. The job script will be restarted from its beginning, ignoring any previous checkpoint. Call the function slurm_free_job_array_resp to release memory allocated for the response array.

slurm_free_job_array_resp
    Release memory allocated by the slurm_suspend2, slurm_resume2, slurm_requeue2, and slurm_update_job2 functions.

RETURN VALUE

Zero is returned upon success. On error, -1 is returned, and the Slurm error code is set appropriately. Functions slurm_suspend2, slurm_resume2, and slurm_requeue2 return zero if the resp array is filled, in which the that array should be examined to determine the error codes for individual tasks of a job array. Then call the function slurm_free_job_array_resp to release memory allocated for the response array.

ERRORS

ESLURM_DISABLED the operation is currently disabled (e.g. attempt to suspend a job that is not running, resume a job that is not currently suspended, or requeue a job on which the operation has been disabled).

ESLURM_INVALID_JOB_ID the requested job id does not exist.

ESLURM_ACCESS_DENIED the requesting user lacks authorization for the requested action (e.g. not user root or SlurmUser).

ESLURM_JOB_PENDING the requested job is still pending.

ESLURM_ALREADY_DONE the requested job has already completed.

ESLURM_NOT_SUPPORTED the requested operation is not supported on this system.

NOTE
These functions are included in the libslurm library, which must be linked to your process for use (e.g. "cc -lslurm myprog.c").

COPYING
Portions copyright (C) 2014 SchedMD LLC. Portions copyright (C) 2005-2006 The Regents of the University of California. Produced at Lawrence Livermore National Laboratory (cf, DISCLAIMER). CODE-OCEC-09-009. All rights reserved.

This file is part of Slurm, a resource management program. For details, see <https://slurm.schedmd.com/>.

Slurm is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

Slurm is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

SEE ALSO

scontrol(1)