> Erlang中文手册 > is_process_alive/1 检测进程是否存活

erlang:is_process_alive/1

检测进程是否存活

用法:

is_process_alive(Pid) -> boolean()

检测进程(必须是本地节点的进程)是否还存活(尚未关掉或已经被关掉的情况),如果是,则返回 true,否则返回 false。

Pid = self(),
erlang:is_process_alive(Pid).

跨节点的进程,可以调用 rpc:call/4 来检测:

IsProcessAlive = fun(Pid) ->
    case is_pid(Pid) of
        true ->
            case rpc:call(node(Pid), erlang, is_process_alive, [Pid]) of
                true -> true;
                _ -> false
            end;
        _ -> 
            false
    end
end,
Pid = self(),
IsProcessAlive(Pid).