【问题标题】:show process name and pid in Debian在 Debian 中显示进程名称和 pid
【发布时间】:2012-04-05 05:01:43
【问题描述】:

如何在 Linux 内核模块中获取和显示当前进程的名称和 PID? 我的代码:

#include <linux/module.h>
#include <linux/init.h>
#include <linux/kernel.h>

MODULE_DESCRIPTION("Afiseaza PID si numele executabilului");
MODULE_AUTHOR("ololo");
MODULE_LICENSE("FREE");


static int print_on_init(void)
{
    struct task *cur_task;
    cur_task = get_current();
    printk(KERN_DEBUG, "Hello!\n");
    return 0;
}

static int print_on_exit(void)
{
    printk(KERN_DEBUG, "Goodbye!\n");
}

module_init(my_hello_init);
module_exit(hello_exit);

【问题讨论】:

  • 能否请您提供真实代码而不是屏幕截图?另外,进程名称是什么意思?命令行?
  • 对我来说看起来像是一个 Linux 内核问题,而不是严格意义上的 Debian 特定问题。对了,为什么把代码当成图片?

标签: c linux process kernel pid


【解决方案1】:

我不是内核编程方面的专家,但您可以看看如何检索当前 PID,例如在 code for exec() 中。似乎有一个名为current 的结构,您可以通过它提取您需要的数据。当您在链接的内核源代码浏览器中单击变量名称时,您会看到使用此变量的其他地方的列表。

【讨论】:

    【解决方案2】:

    您可以拨打getpid()

    【讨论】:

    • 您不能使用getpid(),因为它是标准库中的函数,因此无法在内核模块中访问。
    猜你喜欢
    • 2013-03-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-15
    • 2019-11-26
    • 2011-06-16
    • 1970-01-01
    相关资源
    最近更新 更多