Erlang показать все зарегистрированные процессы - PullRequest
11 голосов
/ 24 марта 2011

Мне нужно получить весь зарегистрированный процесс. Я ввожу register(). a

[первонач, mnesia_subscr, timer_server, mnesia_controller, mnesia_event, kernel_safe_sup, mnesia_monitor, mnesia_snmp_sup, mnesia_recover, mnesia_late_loader, mnesia_kernel_sup, inet_db, рекс, kernel_sup, global_name_server, mnesia_checkpoint_sup, file_server_2, пользователь, 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, дец | ...]

Как я могу получить все зарегистрированные имена, без | ...]?

Спасибо.

Ответы [ 4 ]

50 голосов
/ 24 марта 2011
10 голосов
/ 24 марта 2011

register () возвращает все процессы, но оболочка усекает вывод.

вы можете распечатать результат, чтобы увидеть все:

io:format("~p~n", [registered()]).
4 голосов
/ 17 ноября 2017

Пока вы в оболочке, вы можете использовать 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
3 голосов
/ 24 марта 2011

Я считаю, что самый простой способ:

> io:write(registered()).
...