【问题标题】:Start and destroy system process in Elixir在 Elixir 中启动和销毁系统进程
【发布时间】:2016-05-03 12:12:28
【问题描述】:

我想启动和销毁一个系统进程。

我知道要启动一个进程,我可以使用System.cmd "my_app", [],但它不会返回应用程序的 pid,我无法销毁(杀死)它。

Elixir 有管理子进程的方法吗?

【问题讨论】:

    标签: system elixir


    【解决方案1】:

    代替System.cmd,您可以使用:

    port = Port.open({:spawn_executable "my_app"}, [{:args, args}, :stream, :binary, :exit_status, :hide, :use_stdio, :stderr_to_stdout])
    

    然后您可以通过{:os_pid, pid} = Port.info(port, :os_pid) 获取进程的PID,然后您可以使用System.cmd("kill #{pid}") 终止该进程。

    Elixir Ports

    Erlang Ports

    【讨论】:

      【解决方案2】:

      还有Porcelain,这是 Elixir 社区中大多数人使用的

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-02-23
        • 1970-01-01
        • 2018-02-13
        • 2010-09-22
        • 2018-05-12
        • 2010-09-08
        • 2012-12-31
        相关资源
        最近更新 更多