我正在尝试使用kill
,但在 Linux 内核内部,所以我使用了sys_kill
,但是这个对我不起作用,它给了我一个错误,所以任何人都知道我必须使用什么来杀死内核内部的进程,而不是用户命令中的进程
所以我的问题与我如何使用内核的系统调用不同
对于那些已经要求我说清楚的人..是的,当Linux从网络收到一个数据包时,我试图杀死一个进程,所以在1000个数据包之后,Linux必须杀死进程号17722,我使用了kill,kill_sys,但它没有工作是因为我处于内核级别而不是用户级别
答案1
sys_kill
是一个系统调用。系统调用是为了用户空间应用程序调用内核。
如果您想kill
从内核内部启动一个进程,请查看kill_proc_info
。
答案2
内核进行系统调用并不罕见(或者至少不是未知)...但是您首先必须进行一些黑客操作,以便可以将内核虚拟地址作为参数传递(至少 - 还有其他障碍和陷阱,所有这些都使它成为您应该避免做的事情(如果可以的话)……例如,从中断处理程序中执行此操作不是一个好主意)。这篇博客文章做了合理的解释工作。