摘要
終止提供的工作 (工作、程序或執行緒)。
宣告
#include <zircon/syscalls.h>
zx_status_t zx_task_kill(zx_handle_t handle);
說明
這會以遞迴方式終止指定的程序或工作及其子項,直到在「處理常式」所引發的整個工作樹狀結構終止為止。無法終止執行緒。
您可以透過 ZX_TASK_TERMINATED
信號等待工作終止。如信號觀測到程序完成,工作及其所有子項會視為無效狀態,且大多數的作業將不再成功。
如果「處理程式」是工作且系統呼叫成功,就無法再使用此工作建立新的程序,
當程序或工作透過這個系統呼叫終止時,zx_object_get_info()
會透過 ZX_INFO_PROCESS
或 ZX_INFO_JOB
主題回報 return_code
。ZX_TASK_RETCODE_SYSCALL_KILL
程序和工作也可能由其他代理程式終止,例如具有 ZX_POL_ACTION_KILL
的 Job 政策,或是系統記憶體 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
正確。