如何在Erlang中显示所有进程?

问题描述 投票:0回答:4

我需要获取所有注册流程。我输入

register().
a

 mnesia_event,kernel_safe_sup,mnesia_monitor,mnesia_snmp_sup,
 mnesia_recover,mnesia_late_loader,mnesia_kernel_sup,inet_db,
 rex,kernel_sup,global_name_server,mnesia_checkpoint_sup,
 file_server_2,user,error_logger,global_group,mnesia_locker,
 standard_error_sup,popd_listener_sup,pop_fsm_sup,dets_sup,
 smtpd_listener_sup,disk_log_sup,disk_log_server,dets|...]

我怎样才能获得所有名称注册过程,而不需要

| ...]
(截断)?

谢谢你。

process erlang
4个回答
56
投票

你可以像这样使用

registered/0

> rp(registered()).

这里有 shell 文档


14
投票

registered() 返回所有进程,但 shell 正在截断输出。

您可以打印结果来查看所有内容:

io:format("~p~n", [registered()]).

12
投票

只要你在 shell 中,你就可以使用

regs()
:

1> regs().

** Registered procs on node nonode@nohost **
Name                  Pid          Initial Call                      Reds Msgs
application_controlle <0.33.0>     erlang:apply/2                   65717    0
code_server           <0.38.0>     erlang:apply/2                  592348    0
disk_log_server       <0.129.0>    disk_log_server:init/1             323    0
disk_log_sup          <0.128.0>    supervisor:disk_log_sup/1          367    0
dtls_connection_sup   <0.70.0>     supervisor:dtls_connectio           84    0
dtls_udp_sup          <0.71.0>     supervisor:dtls_udp_sup/1           81    0
erl_prim_loader       <0.6.0>      erlang:apply/2                24923843    0
erl_signal_server     <0.46.0>     gen_event:init_it/6                 51    0
...

** Registered ports on node nonode@nohost **
Name                  Id              Command
ok

4
投票

我相信最简单的方法是:

> io:write(registered()).
© www.soinside.com 2019 - 2024. All rights reserved.