沒事做,就在兩台機器間測試下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編輯如下:<!--
Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/
-->127.0.0.1 localhost localhost
x.x.x.x zane zane #windows機器的ip和電腦名稱
,hosts在windows系統的C:\WINDOWS\system32\drivers\etc目錄下,編輯:<!--
Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/
-->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!