【问题标题】:system call to kill a process inside linux kernel杀死Linux内核内进程的系统调用
【发布时间】:2011-08-23 12:43:26
【问题描述】:

我已经开始使用内核编程,我想终止一个任务组。我想知道使用哪个系统调用。

我已经得到了 current->tgid 和 current->pid,但是我要如何在内核中 kell 进程呢??

谢谢

【问题讨论】:

    标签: linux-kernel kernel


    【解决方案1】:

    如果您想杀死current 所属的任务组,只需调用do_group_exit(exit_code)

    【讨论】:

    • @user489152:不,sys_kill() 在内核内部使用是不正确的。上游内核中没有代码这样做。
    • 好的。只是另一个澄清。 kill_pgrp() 怎么样?
    • 顺便说一句,我正在修改 net/ 目录
    • @user900785: kill_pgrp() 用于发送作业控制进程组的信号,这与任务组不同。
    • 好吧,我想我有一些问题。我有一个应用程序,它产生了许多线程。有一次我想杀死这个应用程序。所以我得到了它的tgid。正如我从“ps”命令中看到的那样,这也是该应用程序的 pid。所以现在为了杀死整个应用程序及其所有线程,我不应该在内核中执行相当于 kill(current->tgid) 的操作吗?当我尝试 do_group_exit(SIGKILL) 时,我看到其他一些(可能相关的)进程正在消失......你能解释一下吗?
    猜你喜欢
    • 1970-01-01
    • 2013-10-30
    • 2010-09-20
    • 1970-01-01
    • 2012-11-18
    • 1970-01-01
    • 1970-01-01
    • 2013-04-24
    • 2013-04-29
    相关资源
    最近更新 更多