Set a process as critical to a job.


#include <zircon/syscalls.h>

zx_status_t zx_job_set_critical(zx_handle_t job,
                                uint32_t options,
                                zx_handle_t process);


Sets process as critical to job. When process terminates, job will be terminated as if zx_task_kill() was called on it. The return code used will be ZX_TASK_RETCODE_CRITICAL_PROCESS_KILL.

The job specified must be the parent of process, or an ancestor.

If options is ZX_JOB_CRITICAL_PROCESS_RETCODE_NONZERO, then job will only be terminated if process has a non-zero return code.


job must have ZX_RIGHT_DESTROY.

process must have ZX_RIGHT_WAIT.

Return value

zx_job_set_critical() returns ZX_OK on success. In the event of failure, a negative error value is returned.


ZX_ERR_BAD_HANDLE job or process is not a valid handle.

ZX_ERR_WRONG_TYPE job or process is not a job handle.

ZX_ERR_INVALID_ARGS options is not 0 or ZX_JOB_CRITICAL_PROCESS_RETCODE_NONZERO, or job is not the parent of process, or an ancestor.

ZX_ERR_ALREADY_BOUND process has already been set as critical to a job.

ZX_ERR_ACCESS_DENIED job does not have ZX_RIGHT_DESTROY or process does not have ZX_RIGHT_WAIT.

See also