2010-08-14 28 views
5

Tôi mới sử dụng Erlang và cố gắng đặt hai nút trên máy tính xách tay của mình.Các nút Erlang không thể nhìn thấy nhau

Trong một thiết bị đầu cuối Tôi gõ:

[email protected]: ~/erlang_apps> erl -sname foo -setcookie secret 

Và tại nhà ga thứ hai:

[email protected]: ~/erlang_apps> erl -sname bar -setcookie secret 

Nếu tôi sử dụng các thiết bị đầu cuối đầu tiên ping thứ hai:

([email protected])1> net_adm:ping([email protected]). 

tôi nhận được một phản ứng pang (cùng một phản ứng nếu tôi sử dụng thuật ngữ thứ hai để ping từ đầu tiên).

Bất kỳ ý tưởng nào tại sao?

+1

Bạn có thể thực hiện 'erl_epmd: names()' và đăng đầu ra không? –

+0

Tôi đã hợp nhất tài khoản chưa đăng ký của bạn vào tài khoản đã đăng ký của bạn. Giờ đây, bạn có thể để lại nhận xét dưới câu trả lời, chỉnh sửa câu hỏi của mình, v.v. Tôi đã chuyển đổi câu trả lời trước của bạn thành nhận xét trong câu trả lời của @ mjcopple. –

Trả lời

3

Hãy thử bắt đầu các nút như thế này:

[email protected]: ~/erlang_apps> erl -sname [email protected] -setcookie secret 
[email protected]: ~/erlang_apps> erl -sname [email protected] -setcookie secret 

Sau đó ping chúng như bạn đã làm trước đó.

([email protected])1> net_adm:ping([email protected]). 

Nếu điều đó không hiệu quả cho bạn, hãy thử ping nút đó.

+0

Đồng thời xem tại: http://stackoverflow.com/questions/2136918/getting-two-erl-shells-to-talk – mjcopple

+0

mjcopple: Cảm ơn câu trả lời của bạn. Tôi đã bắt đầu các nút như bạn đã đề xuất. Tuy nhiên, họ không thể nhìn thấy nhau. Tôi có thể ping cả hai nút từ bên trong nút nhưng không phải từ nút khác. Tôi đang thử nó trên OpenSUSE 11.3. Khi thử trên Ubuntu 10.04 nó hoạt động tốt. Cả hai máy đều là các máy ảo chạy trong Virtual Box. – elimayost

0

Bạn có kiểm tra lỗi nhật ký hệ thống không?

Ứng dụng có hoạt động không? Có thể tắt nó đi và thử lại. Một ngày nọ, tôi đã có những hiệu ứng rất lạ với người phụ tá đang chạy ... nhưng đó chỉ là một phỏng đoán.

0

đó là sự cố DNS, không thể tìm thấy tên máy chủ lưu trữ 'loại bỏ' của bạn trên DNS. Bạn có thể sử dụng 'localhost' làm phần host, giống như 'foo @ localhost' và 'bar @ localhost', nó sẽ luôn hoạt động.

Các vấn đề liên quan