【问题标题】:use "exit/2" function in erlang shell在 erlang shell 中使用“exit/2”函数
【发布时间】:2012-02-18 08:11:36
【问题描述】:

在erlang shell中创建了三个erlang进程并在本地注册,分别命名为Pid、Pid2、Pid3。然后我想首先通过函数“exit/2”终止“Pid”。

(emacs@yus-iMac.local)62> exit(lsaaa_dispatch,test).   %lsaaa_dispatch is the above Pid's local registered name
** exception error: bad argument
     in function  exit/2
        called as exit(lsaaa_dispatch,test)

为什么会发生异常? 为什么这三个进程都终止了?因为我在 Pman 中找不到它们。

【问题讨论】:

    标签: erlang


    【解决方案1】:

    exit/2 接受一个 pid,而不是一个术语。它是由内核“erlang”模块定义的。

    exit(whereis(lsaaa_dispatch), test).
    

    关于你的第二个问题,想想这些进程与你的 shell 之间的关系。

    【讨论】:

    • 是的,如果这 3 个进程都链接到 shell 进程,那么当 shell 出现错误时,它们都会死掉。 shell中的所有错误都会导致shell进程死亡;一个新的会自动为您启动,因此在很多方面您都不会注意到它。除了它杀死链接的进程。注:这不是错误,而是它的预期工作方式。
    猜你喜欢
    • 2014-02-10
    • 2017-03-18
    • 1970-01-01
    • 2020-07-24
    • 2011-01-05
    • 1970-01-01
    • 2010-11-30
    • 2015-11-13
    • 1970-01-01
    相关资源
    最近更新 更多