---
name: "slurm_complete_job_step"
section: "3"
platform: "linux"
package: "libslurm13-dev"
version: "1.3.6-1lenny3"
release: "Debian 5.0 (Lenny)"
platforms: ["linux"]
url: "https://new.carta.tech/slurm_complete_job"
---

# slurm\_complete\_job\_step(3)

Slurm job completion calls

Part of [slurm\_complete\_job(3)](/slurm_complete_job/3.md).

## NAME

slurm\_complete\_job, slurm\_complete\_job\_step - Slurm job completion calls

## SYNTAX

\#include \<slurm/slurm.h\>

int **slurm\_complete\_job** (\
\
 	uint32\_t *job\_id*, \
\
 	uint32\_t *job\_return\_code*,\
\
 	uint32\_t *system\_return\_code*\
 );

int **slurm\_complete\_job\_step** (\
\
 	uint32\_t *job\_id*,\
\
 	uint32\_t *job\_step\_id*,\
\
 	uint32\_t *job\_return\_code*,\
\
 	uint32\_t *system\_return\_code*\
 );

## ARGUMENTS

- *job\_id*

  Slurm job id number.

- *job\_step\_id*

  Slurm job step id number.

- *job\_return\_code*

  Highest exit code of any task of the user's application. A non-zero value is considered as an indication of job failure.

- *system\_return\_code*

  Highest exit code of any system daemon executing the user's application. A non-zero value is considered as an indication of failure, such as error setting the job's session ID, error creating a log file, etc.

## DESCRIPTION

**slurm\_complete\_job** Note the termination of a job. This function may only be  successfully executed by the job's owner or user root.

**slurm\_complete\_job\_step** Note the termination of a job step. This function  may only be successfully executed by the job's owner or user root.

## RETURN VALUE

On success, zero is returned. On error, -1 is returned, and Slurm error code  is set appropriately.

## ERRORS

**SLURM\_PROTOCOL\_VERSION\_ERROR** Protocol version has changed, re-link your code.

**ESLURM\_INVALID\_JOB\_ID** the requested job id does not exist.

**ESLURM\_ALREADY\_DONE** the specified job has already completed and can  not be modified.

**ESLURM\_ACCESS\_DENIED** the requesting user lacks authorization for the requested action (e.g. trying to delete or modify another user's job).

**ESLURM\_INTERCONNECT\_FAILURE** failed to configure the node interconnect.

**SLURM\_PROTOCOL\_SOCKET\_IMPL\_TIMEOUT** Timeout in communicating with  SLURM controller.

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

Copyright (C) 2002 The Regents of the University of California. Produced at Lawrence Livermore National Laboratory (cf, DISCLAIMER). LLNL-CODE-402394.

This file is part of SLURM, a resource management program. For details, see \<https://computing.llnl.gov/linux/slurm/\>.

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

[**slurm\_get\_errno**(3)](/slurm_get_errno/3.md), [**slurm\_perror**(3)](/slurm_perror/3.md), [**slurm\_strerror**(3)](/slurm_strerror/3.md)
