使用pid杀死进程并在系统调用中查找绑定到pid的用户

时间:2016-11-08 23:03:03

标签: linux system-calls

我正在尝试开发一个能够接收pid作为参数的系统调用,杀死pid并打印到内核日志。到目前为止,我有下面的代码,但我在尝试编译内核时遇到此错误。我该如何解决?有没有办法找到杀死在这种情况下要杀死的pid的用户名?

kill_log / kill_log.c:2:24:致命错误:signal.h:没有这样的文件或目录 编译终止。 scripts / Makefile.build:289:目标'kill_log / kill_log.o'的配方失败 make [1]: * [kill_log / kill_log.o]错误1 Makefile:968:目标'kill_log'的配方失败 make:* [kill_log]错误2

#include <linux/kernel.h>
#include <signal.h>

asmlinkage long sys_kill_log(pid_t pid)
{
    kill(pid, SIGUSR1);
    printk(KERN_WARNING "The process %d has been killed\n", pid);

    return 0;
}

1 个答案:

答案 0 :(得分:0)

根据您的错误消息,您遗漏了signal.h。在基于debian的系统上,您需要安装libc6-dev

关于检索用户名,您可以尝试使用getpwuid