[英]Erlang Observer crashes when connecting to remote node
按照本教程,我已經使用rebar創建了一個簡單的erlang版本: http : //www.metabrew.com/article/erlang-rebar-tutorial-generating-releases-upgrades
我可以通過轉到dummynode / bin文件夾並運行來安裝和啟動虛擬節點:
dummynode install
dummynode start
在vm.args文件中,我已將節點名稱設置為dummynode@192.168.1.129
當我使用以下命令啟動另一個節點時:
erl -name cole@192.168.1.129 -setcookie dummynode
然后,我可以啟動erlang觀察器。 在“節點”菜單中,我看到列出了dummynode節點,但是當我嘗試連接時,觀察者崩潰。
我無法制作故障轉儲文件的開頭或結尾,但似乎erlang抱怨無法啟用分發。
我無法將節點與net_adm:ping / 1連接,也無法弄清楚觀察者為什么至少能夠看到分離的dummynode節點。
誰能解釋我如何連接到dummynode節點?
更新 :我已經確認cookie在兩個節點上都是相同的。 此外,AFAICT鋼筋還將觀察員及其所有依賴項打包到發行版中。
如果無法使用net_adm:ping / 1連接,請檢查兩個節點是否具有相同的cookie(erlang:get_cookie / 0)。
這兩個節點必須具有相同的cookie才能形成分布式系統,但是觀察者可以至少向您顯示計算機上存在的所有節點,即使它們沒有samme cookie。
觀察者需要在遠程節點上安裝一些模塊才能運行。 如果不在那里出現,它將以靜默方式崩潰。 我不記得是哪一個,因此您必須進行試驗,以便在目標分發中添加一些應用程序需求。
謎團已揭開! 它既不是Cookie也不是依賴關系問題。 生成的vm.args文件有一行:
-name dummynode@127.0.0.1
您認為這意味着如果我將節點名稱更改為類似
-name mynode@mydomain.com
然后,鋼筋將使用以下標志啟動運行時:
erl -name mynode@mydomain.com
不是這種情況。 事實證明,即使您調整節點名稱,鋼筋也總是使用-sname
標志調用運行時(至少在Windows上)。 如果要在物理計算機上分布集群(使用帶-name
標志的長名稱),則需要編輯生成的bin\\dummynode.cmd
文件,並將所有-sname
標志更改為-name
。
我已經向鋼筋小組提出了問題,但是我不知道他們是否認為這是一個錯誤。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.