保障任务终止

总结

终止提供的任务(作业、进程或线程)。

声明

#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_PROCESSZX_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 权限。

另请参阅