当前位置:  技术问答>linux和unix

内核态怎么杀死一个知道名字的进程?

    来源: 互联网  发布时间:2017-04-06

    本文导语:  我这边已经实现了遍历所有进程,找出我需要的进程: int process_cnt=0; struct task_struct *task = &init_task;  // 全局进程列表 struct task_struct *p; struct list_head *pos; read_lock(&tasklist_lock); list_for_each(pos,&task->tasks) {     p ...

我这边已经实现了遍历所有进程,找出我需要的进程:


int process_cnt=0;
struct task_struct *task = &init_task;  // 全局进程列表
struct task_struct *p;
struct list_head *pos;

read_lock(&tasklist_lock);
list_for_each(pos,&task->tasks)
{
    p = list_entry(pos, struct task_struct, tasks);
    process_cnt ++;
    os_printf("%d--->%sn", p->pid,p->comm);
}

read_unlock(&tasklist_lock);
os_printf("the number of process is:%d n", process_cnt);


现在需要把指定名字的一些进程杀掉。
1. 尝试了kill,这个接口是用户态加载了glibc才能用的,因此不行!
2. 尝试了sys_kill,结果加载的时候出现sxgt_xct: Unknown symbol sys_kill!

linux内核版本: linux-2.6.30

----- 
请教下各位,其他还有什么办法能够达到我的目的?


|
force_sig(SIGKILL, int pid);这个也可以,pid就是进程号

|
发信号

|
给进程发信号

|
反正得kill

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。














站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,