总结
终止提供的任务(作业、进程或线程)。
声明
#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
句柄不是有效的句柄。
ZX_ERR_WRONG_TYPE
句柄不是任务句柄。
ZX_ERR_ACCESS_DENIED
句柄没有 ZX_RIGHT_DESTROY
权限。