blob: fff0b9f38c646d8acf382ad13a2ca81433cd0b16 [file] [log] [blame] [view]
# Job
## NAME
job - Control a group of processes
## SYNOPSIS
A job is a group of [processes](process.md) and possibly other (child)
jobs. Jobs are used to track privileges to perform kernel operations (i.e., make
various syscalls, with various options), and track and limit basic resource
(e.g., memory, CPU) consumption. Every process belongs to a single job. All the
jobs on a Fuchsia system form a tree, with every job, except the root job,
belonging to a single (parent) job.
## DESCRIPTION
A job is an object consisting of the following:
+ a reference to a parent job
+ a set of child jobs (each of which has this job as its parent)
+ a set of member processes
+ a set of policies
Jobs allow "applications" that are composed of more than one process to be
controlled as a single entity.
For more information, see [Jobs](/docs/concepts/process/jobs.md).
## SYSCALLS
- [`zx_job_create()`] - create a new child job.
- [`zx_job_set_critical()`] - set a process as critical to a job.
- [`zx_job_set_policy()`] - set policy for new processes in the job.
- [`zx_process_create()`] - create a new process within a job.
- [`zx_task_create_exception_channel()`] - listen for task exceptions
- [`zx_task_kill()`] - cause a task to stop running.
[`zx_job_create()`]: /reference/syscalls/job_create.md
[`zx_job_set_critical()`]: /reference/syscalls/job_set_critical.md
[`zx_job_set_policy()`]: /reference/syscalls/job_set_policy.md
[`zx_process_create()`]: /reference/syscalls/process_create.md
[`zx_task_create_exception_channel()`]: /reference/syscalls/task_create_exception_channel.md
[`zx_task_kill()`]: /reference/syscalls/task_kill.md