今天的Erlang Thursday继续讲c模块的另一个函数 c:i/0 。
c:i/0 输出系统的信息,展示本节点的所有进程信息。
|
|
我们可以看到这个函数返回进程的id,进程的初始化函数即启动进程的函数,进程堆的大小,进程的规约数,进程消息队列里的消息数,进程的注册名字,进程当前所处的函数,以及进程的栈大小。
c:i/0 的输出也包括堆大小、规约数,消息队列大小以及栈大小的各项数据的总和。
c模块也提供 c:ni/0 函数,它展示所有联通的节点的系统信息。
从该函数输出的进程信息来看,我们可以找到几个和 kjell 相关的进程,kjell是我用来替换 erl shell的,它易于查找进程的信息。
查看一个kjell相关的进程,我们可以获得其pid,然后通过调用 c:i/3 展示进程的信息来深入观察该进程,我们可以用pid的3个整数做为此函数的入参。
|
|
当我们查看指定的进程的信息,我们可以看到它的链接进程,消息和消息队列长度,堆栈的信息,以及其他各种可能有用的相关设置。
同样,这几个函数也没有observer那样有漂亮的界面,不过它们在你无法直接通过一个终端来访问节点的时候可以派上用场,比如在一个跳板机上工作;它们能给你一个好的方式使得你能知道你的erlang节点的运行情况。