| # 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 [⚠ not implemented] | |
| Jobs allow "applications" that are composed of more than one process to be | |
| controlled as a single entity. | |
| ## 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()`]: /docs/reference/syscalls/job_create.md | |
| [`zx_job_set_critical()`]: /docs/reference/syscalls/job_set_critical.md | |
| [`zx_job_set_policy()`]: /docs/reference/syscalls/job_set_policy.md | |
| [`zx_process_create()`]: /docs/reference/syscalls/process_create.md | |
| [`zx_task_create_exception_channel()`]: /docs/reference/syscalls/task_create_exception_channel.md | |
| [`zx_task_kill()`]: /docs/reference/syscalls/task_kill.md |