2017-05-02 11 views
3

絶対パスを表示するには Erlang OTPアプリケーションがsys.configからロードされていますか?つまり、get_all_envhttp://erlang.org/doc/apps/kernel/application.html#get_all_env-0)に予期しない結果が表示された場合、どのファイルがデバッグのために読み込まれているのかを確認するにはどうすればよいですか?Erlang:OTPアプリケーションでsys.configをロードしました

私は一度これをしなかったので、あなたはVMの引数の完全なリストを取得するためにinit:get_plain_arguments/0を使用することができます私はそれが可能である知っているが、悲しいことに、私はそのコード=(

答えて

1

を見つけることができません。

([email protected])13> init:get_plain_arguments(). 
    ["/usr/local/bin/rebar3","shell","--apps","some_app", 
    "--config","priv/sys.config","--sname","[email protected]"] 

こと。あなたがCLIにノードを手動で開始している場合は、確かに働く参考のために、出力は、上記rebar3を使用して、私の起動スクリプトに対応:

rebar3 shell --apps some_app --config priv/sys.config --sname [email protected] 
+0

残念ながら、かなり何をうんそのパスが相対パス(priv/sys.config)であるため、探しています。 Dockerにはパスの問題があると思いますので、ロードされたファイルへの絶対パスが必要です。 – Tommy

+0

file:get_cwd()を使用して現在の作業ディレクトリを取得します。それが変更されていないと仮定すると、init引数にfilename:join(Base、Path)を使用して、設定ファイルへの絶対パスを構築することができます。また、init:get_argument(config)はget_plain_arguments()よりも使いやすいです。 – RichardC

関連する問題