I meant if the start_child() returns {:ok, pid} or {:error, {:already_started, pid} then I know the process is actually running.
Getting back :ignore, it doesn’t tell me if it is running or not, and couldn’t find it in the docs.
Okay, I see — start_child should only return ignore if the underlying start_link that it calls returns ignore. It means that the process was not and will not be started.
It’s not something you need to handle unless you’ve designed a process that may return :ignore in its own start_link.
In general, Elixir/Erlang type specs enumerate all possible return values, but that doesn’t mean you need to handle them all if you don’t expect them to occur.