在Elixir中启动并销毁系统进程

时间:2016-05-03 12:12:29

标签: system elixir

我想启动并销毁系统进程。

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

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

2 个答案:

答案 0 :(得分:2)

而不是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

答案 1 :(得分:1)

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