How to show all processes in Erlang?

和自甴很熟 提交于 2020-01-01 08:12:31

问题


I need get all registered process. I input 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|...]

How can i get all names registered process, without | ...] (truncation)?

Thank you.


回答1:


registered() is returning all the processes, but the shell is truncating output.

you can print the result to see everything:

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



回答2:


> rp(registered()). Documentation here




回答3:


As long as your are in shell you can use 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:


I believe the easiest way is:

> io:write(registered()).


来源:https://stackoverflow.com/questions/5415221/how-to-show-all-processes-in-erlang

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!