Posted on 2007-06-29 16:33
dennis 閱讀(3673)
評論(0) 編輯 收藏 所屬分類:
erlang 、
linux & C
沒事做,就在兩臺機器間測試下Erlang分布式的例子,一個臺是windowsXP,一臺裝的redHat9,沒有詳細的文檔,自己摸索著搞成功了,記錄下。
1.首先,分布式Erlang的實現提供了自有的安全機制來預防未經授權的Erlang系統訪問。Erlang系統與別的機器進行交互時必須有同樣的magic cookie,保存在一個稱為.erlang.cookie的文件中,為了在兩臺不同機器間測試,需要編輯一份.erlang.cookie,內容隨便,比如:
just_test
然后將這份文件拷貝到windows環境變量HOMEPATH所在的目錄
,比如我的是C:\Documents and Settings\Admin,而linux拷貝到環境變量$HOME指向的目錄,比如我這里是/root。特別注意一點,linux的.erlang.cookie文件需要設置權限為-r--------,也就是400,僅所有者可讀:
chmod 400 .erlang.cookie
2.因為Erlang中的node名稱是name@host,host是計算機名,因此在兩臺機器上都需要將計算機名和ip加進hosts文件,這個文件在linux下是在/etc/hosts,你可以用vi編輯如下:
127.0.0.1 localhost localhost
x.x.x.x zane zane #windows機器的ip和計算機名
,hosts在windows系統的C:\WINDOWS\system32\drivers\etc目錄下,編輯:
127.0.0.1 localhost
x.x.x.x dennis #linux機器的名稱和ip
3.第三步,要啟動節點,通過命令erl -sname 或者erl -name,在此之前需要啟動epmd進程,它負責映射符號名到機器地址
在兩個機器都執行:
epmd -daemon
4.至此配置完成,可以測試下Erlang分布式編程在不同的機器和系統之間了(比如《
Erlang入門(三)--分布式編程》中的ping pong例子),very cool!