【问题标题】:How to show all processes in Erlang?如何在 Erlang 中显示所有进程?
【发布时间】:2019-11-06 08:16:44
【问题描述】:

我需要获取所有已注册的进程。我输入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


    【解决方案1】:

    > rp(registered()).Documentation here

    【讨论】:

    • +1 以获得最佳解决方案,我错过了 rp() 以显示所有结构的简短方法,而无需一直键入 io:format abominations。感谢您指出!
    【解决方案2】:

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

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

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

    【讨论】:

      【解决方案3】:

      只要你在 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
      

      【讨论】:

      • 有什么办法知道哪个进程导致cpu负载..?
      • @knocker 不太确定!
      【解决方案4】:

      我认为最简单的方法是:

      > io:write(registered()).
      

      【讨论】:

      • 我用rp(registered()).Doc抚养你
      • @D.Nibbon:为什么不写下你自己的答案,这样我们才能正确地投票?
      猜你喜欢
      • 1970-01-01
      • 2014-04-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-29
      • 2011-09-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多