僵尸进程或类似的东西?

Nil*_*ale 0 elixir phoenix-framework

我有一个凤凰应用程序。有时我会遇到这样的情况:

$ ps aux
===>

user1    67297   0.0  0.2  13240  1860  -  S    Thu07       0:03.00 /usr/home/user1/my_projects/project1/erts-10.3.5.19/bin/epmd -daemon
Run Code Online (Sandbox Code Playgroud)

然后我会试着阻止它

$ MIX_ENV=prod ./bin/project1 stop
--rpc-eval : RPC failed with reason :nodedown
Run Code Online (Sandbox Code Playgroud)

为什么它首先说它已关闭?

尽管如此,它仍然会保持不变:

$ ps aux
===>

user1    67297   0.0  0.2  13240  1860  -  S    Thu07       0:03.00 /usr/home/user1/my_projects/project1/erts-10.3.5.19/bin/epmd -daemon
Run Code Online (Sandbox Code Playgroud)

怎么了?

PS 通常,有 3 个左右的进程与项目有关,尽管在我的问题中只有 1 个。在这种情况下,我已经通过“kill”手动杀死了其中的 2 个。然而,这并没有解决这个问题。

zwi*_*pie 5

那就是Erlang Port Mapper Daemon,它是 Erlang/Elixir 程序在与其他节点建立连接时使用的小型名称服务器。

如果要分发节点并且不存在正在运行的实例,则守护程序将通过命令 erl(1) 自动启动。

因此,当您启动 Phoenix 应用程序时,它会自动启动。

无需终止该进程,您可以让它继续运行。