摘要
终止提供的作业或进程。
声明
#include <zircon/syscalls.h>
zx_status_t zx_task_kill(zx_handle_t handle);
说明
这会以递归方式异步终止给定进程或作业及其子进程, 直到位于 handle 的整个任务树终止。 不支持终止线程。
可以通过 ZX_TASK_TERMINATED
等待任务终止运行
信号。过程完成后(根据信号观察到的),任务和
其所有子项都被视为处于终止状态,且大多数操作
也将不再成功
如果 handle 一个作业且系统调用成功,则无法再对该作业 用于创建新进程
当进程或作业通过此系统调用终止时,return_code
ZX_TASK_RETCODE_SYSCALL_KILL
,报告者:zx_object_get_info()
,通过
ZX_INFO_PROCESS
或 ZX_INFO_JOB
主题。
进程和作业也可能被其他代理终止,例如具有
ZX_POL_ACTION_KILL
或当系统内存不足时 OOM。
权限
handle 必须具有 ZX_RIGHT_DESTROY
。
返回值
成功后,zx_task_kill()
会返回 ZX_OK
。如果进程使用
系统调用来终止自身,该系统调用不会返回。
错误
ZX_ERR_BAD_HANDLE
handle 不是有效的句柄。
ZX_ERR_WRONG_TYPE
handle 不是任务句柄。
ZX_ERR_ACCESS_DENIED
标识名没有 ZX_RIGHT_DESTROY
。
ZX_ERR_NOT_SUPPORTED
handle 是一个线程句柄。