使用 systemd 部署一个 elixir 服务到 qa 环境, 结果用不到 remote_console ,多难受的一件事 :(
遇到的还是一个从来没见过的报错, 下面就来一起看一下
1 | Interactive Elixir (1.10.4) - press Ctrl+C to exit (type h() ENTER for help) |
这个是因为 /etc/systemd/system/example.service 文件中的 User=chenduo 被删了, 导致 erlang 启动时缺一个 -home 的参数(例如下面就有, ps aux
命令显示出来的),而查看 elixir 源码可以看到 System.user_home 用的是 :init.get_argument(:home), 没有这个 -home 参数就失败,于是上述 System.user_home 也就失败了1
/opt/homebrew/Cellar/erlang@23/23.3.4.7/lib/erlang/erts-11.2.2.6/bin/beam.smp -sbwt none -sbwtdcpu none -sbwtdio none -- -root /opt/homebrew/Cellar/erlang@23/23.3.4.7/lib/erlang -progname erl -- -home /Users/chenduo -- -kernel shell_history enabled -noshell -s elixir start_cli -- -extra -e ElixirLS.LanguageServer.CLI.main()