gpt4 book ai didi

elixir - 分离进程不写入文件 & rpc 调用因连接节点错误而失败

转载 作者:行者123 更新时间:2023-12-05 07:51:15 26 4
gpt4 key购买 nike

我有一个用于启动的 Elixir 应用

iex --sname "main" --cookie "abc" --detached -S mix

如果我在没有 detached 选项的情况下开始这个过程,一切正常。除此之外,main 进程使用 File.openIO.write(file_path, data )。使用 detached 选项,不会向文件写入任何内容。

所以我想,我可以尝试从我开始的另一个节点连接到这个进程

iex --sname "test" --cookie "abc" -S mix

然后我做

Node.connect(main@localhost)

Node.list 确认我已连接到 main 节点。第一个进程包含一个返回相关 .csv 文件路径的函数。如果我打电话

:rpc.call(:main@localhost, Log, :csv_path, [])

返回错误

{:badrpc, :EXIT, {:undef, [{Log, :csv_path, [], []}....

如果我在没有detached 选项的情况下启动main 节点时重复相同的操作,这会起作用并向我返回正确的文件路径。

我忘记了哪个配置选项?

最佳答案

那是因为你不能在分离模式下启动iexiex 是一个 shell,它需要输入。但是分离意味着没有输入或输出。 Erlang 无法启动 iex,您最终只能运行裸 Erlang,而没有任何迹象表明发生了什么。

你可以尝试 :rpc.call(:main@localhost, Application, :loaded_applications, []) 你应该只看到 stdlibkernel 正在运行。

如果你运行 elixir --erl "-detached"--no-halt --sname "main"--cookie "abc"-S mix 它应该可以正常工作。这里需要注意三点:

  1. 使用 elixir 代替 iex
  2. --detached 已弃用,因此请改用 --erl "-detached"
  3. 添加 --no-halt,否则 elixir 会立即退出。

关于elixir - 分离进程不写入文件 & rpc 调用因连接节点错误而失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35180059/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com