簡體   English   中英

在Ubuntu 10.4中使用自定義Erlang時,在escript中啟動Erlang從節點失敗

[英]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版本現在已經有點舊了,這可能不再是一個問題。

從節點是否正在與其他Erlang安裝一起運行? 在從屬節點的文檔中出於超時錯誤的原因列出了這些信息,我看到“ Erlang節點具有不同的cookie”,我認為在這種情況下可能會發生。

如果是這種情況,在等待超時時運行ps -FC erlang應該會向您顯示具有不同路徑的進程。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM