Summary
Kill the provided job or process.
Declaration
#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 can no 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.
Rights
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.
ZX_ERR_NOT_SUPPORTED
handle is a thread handle.