elixirで開発しているときにプロセスIDを見失ってしまうことはないでしょうか。そういうときはとりあえず全プロセスIDのリストの取得すると何か手がかりが見つかるかもしれません。
この記事を読んで知りました。
論よりRUN (IEx)
早速IExを開きます。
terminal
iex
IExが印字できるリスト長の制限を無効化。デフォルトでは50個まで。
IEx
IEx.configure inspect: [limit: :infinity]
現在の環境で存在している全てのプロセスIDを取得する。
Process.list/0とProcess.info/2を組み合わせて有用な情報を取得。
IEx
for pid <- Process.list() do
{_, registered_name} = Process.info(pid, :registered_name)
{pid, registered_name}
end
論よりRUN (Livebook)
Livebook で RUN する場合は、Kino のデータテーブルを使うと結果が見やすくなります。
Livebook
Mix.install([{:kino, "~> 0.10.0"}])
Process.list()
|> Enum.map(fn pid -> [{:pid, pid}, Process.info(pid, :registered_name)] end)
|> Kino.DataTable.new()
ご参考までに