有时需要根据进程的名称,得到它的,写了一个函数
static pid_t get_pid_by_name(char *name)
{
struct task_struct *tsk;
pid_t pid = 0;
read_lock(&tasklist_lock);
for_each_process(tsk) {
if (!strcmp(tsk->comm, name)) {
pid = tsk->pid;
break;
}
}
read_unlock(&tasklist_lock);
/*printk("%s pid = %d\n", name, pid);*/
return pid;
}
还有一个API根据进程的pid,得到进程的task_struct结构指针,
find_task_by_pid(1)
这个函数很多人配合下面的API函数使用,在内核空间发信号给空间进程。
send_sig(sig_no, struct task_struct * p, 0);
阅读(925) | 评论(0) | 转发(0) |