在/ proc / modules中加载模块的状态

时间:2015-04-27 11:07:09

标签: linux linux-kernel procfs

question的答案可以看出,/proc/modules的第五个字段是模块的加载状态,可以是LiveLoadingUnloading。但是,在我的Ubuntu 14.04系统和其他一些系统中,我只能找到此字段的值Live。这个领域也可以有其他价值吗?

2 个答案:

答案 0 :(得分:3)

此字段有3种可能的状态:

  • Live
  • Loading
  • Unloading

您可以在kernel/module.c文件中的内核源代码中看到这一点:

/* Informative for users. */
seq_printf(m, " %s",
           mod->state == MODULE_STATE_GOING ? "Unloading" :
           mod->state == MODULE_STATE_COMING ? "Loading" :
           "Live");

mod->state的说明可在enum module_state include/linux/module.h中找到:

enum module_state {
    MODULE_STATE_LIVE,      /* Normal state. */
    MODULE_STATE_COMING,    /* Full formed, running module_init. */
    MODULE_STATE_GOING,     /* Going away. */
    MODULE_STATE_UNFORMED,  /* Still setting it up. */
};

答案 1 :(得分:1)

该字段有可能具有其他值,但这些是过渡状态,您将很难从内核外部发现它们。例如,Loading状态仅在模块完全加载到内存中时才会持续,直到其初始化完成。通常,这只需要几微秒。

相关问题