| # zx_task_kill |
| |
| ## NAME |
| |
| <!-- Updated by update-docs-from-fidl, do not edit. --> |
| |
| Kill the provided task (job or process). |
| |
| ## SYNOPSIS |
| |
| <!-- Updated by update-docs-from-fidl, do not edit. --> |
| |
| ```c |
| #include <zircon/syscalls.h> |
| |
| zx_status_t zx_task_kill(zx_handle_t handle); |
| ``` |
| |
| ## DESCRIPTION |
| |
| This asynchronously kills the given process or job and its children recursively, |
| until the entire task tree rooted at *handle* is dead. |
| Killing a thread is not supported. |
| |
| It is possible to wait for the task to be dead via the **ZX_TASK_TERMINATED** |
| signal. When the procedure completes, as observed by the signal, the task and |
| all its children are considered to be in the dead state and most operations |
| will no longer succeed. |
| |
| If *handle* is a job and the syscall is successful, the job cannot longer be |
| used to create new processes. |
| |
| When a process or job is killed via this syscall, the `return_code` is |
| **ZX_TASK_RETCODE_SYSCALL_KILL** as reported by [`zx_object_get_info()`] via |
| the **ZX_INFO_PROCESS** or **ZX_INFO_JOB** topic. |
| |
| Processes and Jobs can also be killed by other agents such as the Job policy with |
| **ZX_POL_ACTION_KILL** or when the system is running low on memory [OOM](/docs/development/kernel/memory/oom.md). |
| |
| ## RIGHTS |
| |
| <!-- Updated by update-docs-from-fidl, do not edit. --> |
| |
| *handle* must have **ZX_RIGHT_DESTROY**. |
| |
| ## RETURN VALUE |
| |
| On success, `zx_task_kill()` returns **ZX_OK**. If a process uses |
| this syscall to kill itself, this syscall does not return. |
| |
| ## ERRORS |
| |
| **ZX_ERR_BAD_HANDLE** *handle* is not a valid handle. |
| |
| **ZX_ERR_WRONG_TYPE** *handle* is not a task handle. |
| |
| **ZX_ERR_ACCESS_DENIED** *handle* does not have the **ZX_RIGHT_DESTROY** |
| right. |
| |
| ## SEE ALSO |
| |
| - [`zx_job_create()`] |
| - [`zx_process_create()`] |
| |
| <!-- References updated by update-docs-from-fidl, do not edit. --> |
| |
| [`zx_job_create()`]: job_create.md |
| [`zx_object_get_info()`]: object_get_info.md |
| [`zx_process_create()`]: process_create.md |