2016-07-20 1 views
5

プロダクションで実行中のエリクシル/ OTPアプリケーションがmix phoenix.serverで始まっています。状態を保持するいくつかのプロセスがあります。これらのうちの1つはエージェントとして実装されたstashであり、アプリケーション全体を停止することなく現在手動で変更したい状態になっています。 アプリケーション内のiexセッションに入ると、それは簡単ですが、エリクシルでもこの​​ようなオプションが可能かどうかはわかりません。実行中のエリクシール/ OTPプロセスにiexセッションを添付する

答えて

11

どのようにOTPアプリケーションを起動したかによって異なります。ノードに接続するには、--nameまたは--snameフラグのいずれかで開始する必要があります。あなたは、ノード名は、最初の部分は、実際のノード名と第二の部分であるホストである原子であるnode()

$ iex 
Erlang/OTP 18 [erts-7.2.1] [source] [64-bit] [smp:4:4] [async-threads:10] [kernel-poll:false] 

Interactive Elixir (1.3.0) - press Ctrl+C to exit (type h() ENTER for help) 
iex(1)> node() 
:[email protected] 

で現在実行中のセッションの名前を確認することができます。ホストはルーティングに使用されるため、nohostに配備されているノードに接続するのは困難です。

短い名前(--sname)でiexを起動すると、ホスト名が自動的に検出されます。別の名前でいくつかの他のコンソールの実行iexと同じCookieで

$ iex --sname foo --cookie ciastko 
(...) 
iex([email protected])1> node 
:"[email protected]" 

Node.connect(:"[email protected]")を試してみてください。彼らは接続する必要があります。

あなたはおそらくそれを念頭に置いてあなたのphoenixアプリケーションを起動しておらず、あなたは今接続できません。次回この可能性を持ってPhoenixを起動するには、

elixir --sname some_name --cookie ciastko -S mix phoenix.server 
関連する問題