[英]Starting an Erlang slave node in escript fails when using custom Erlang in Ubuntu 10.4
我有以下腳本:
#!/usr/bin/env escript
%%! -name test_starter@127.0.0.1
main(_) ->
NodeName = test,
Host = '127.0.0.1',
Args = "",
{ok, _Node} = slave:start_link(Host, NodeName, Args),
io:format("Node started successfully!").
在Ubuntu 10.04上運行時,我得到以下信息:
$ ./start_slave
Node started successfully!
$
我想安裝自己的Erlang(最新版本,調試透析器的編譯文件等),因為Ubuntu上的Erlang常規安裝缺少一些功能。 我將我的Erlang二進制文件放入~/Applications/bin
。 啟動Erlang通常是可行的,在Erlang Shell中啟動從屬節點也可以。
但是,現在我的腳本無效。 大約60秒后,它將返回錯誤:
$ ./start_slave
escript: exception error: no match of right hand side value {error,timeout}
即使我將escript的第一行更改為使用我的erlang版本,它仍然無法正常工作:
#!/home/user/Applications/bin/escript
從屬節點以對erlang:open_port/2
的調用開始,該調用似乎正在使用sh
,而sh
不會再讀取設置我的自定義PATH
環境變量的.bashrc
文件。 當slave:start_link/3
等待從節點響應時,似乎發生了超時,但從未發生。
如何在Ubuntu 10.4上滾動自己的Erlang安裝並在腳本中啟動從屬節點?
更新:我試圖將路徑添加到/etc/environment
(在Ubuntu中設置了原始PATH
位置)內的自定義Erlang中,但這並沒有改變任何內容...
更新2:接受給出的唯一答案(即使它不能解決問題)。 Ubuntu和Erlang版本現在已經有點舊了,這可能不再是一個問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.