LoginSignup
14
2

Elixir 全プロセスIDのリストを取得

Last updated at Posted at 2022-11-20

elixirで開発しているときにプロセスIDを見失ってしまうことはないでしょうか。そういうときはとりあえず全プロセスIDのリストの取得すると何か手がかりが見つかるかもしれません。

この記事を読んで知りました。

論よりRUN (IEx)

早速IExを開きます。

terminal
iex

IExが印字できるリスト長の制限を無効化。デフォルトでは50個まで。

IEx
IEx.configure inspect: [limit: :infinity]

現在の環境で存在している全てのプロセスIDを取得する。
Process.list/0Process.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()

CleanShot 2023-05-24 at 09.42.44.png

ご参考までに

14
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
14
2