2010-04-17 30 views
5

Tôi đang cố gắng bắt đầu nút nô lệ xóa trên cụm và tôi nhận được thông báo "bash: erl: command not found". Mặc dù tôi có bí danh cho erl. Dưới đây là những gì tôi thực sự làm:Erlang: bắt đầu nút nô lệ

[[email protected] ~]$ erl -rsh ssh -sname n001  
Eshell V5.7.5 (abort with ^G) 
    ([email protected])1> slave:start_link("[email protected]", n002, "-rsh ssh"). 
    bash: erl: command not found 
           {error,timeout} 
    ([email protected])2> 

Có thể có điều gì đó sai? Cảm ơn.

CẬP NHẬT: Tôi đã thêm thư mục bin erlang vào biến $ PATH của tôi; Tôi đã đặt biến $ ERLANG_ROOT_DIR; tạo liên kết tượng trưng trong ~/to ERL - nhưng không có gì đã thay đổi ... erlang Btw, tôi đã cài đặt trong ~/bin/erlang dir ...

Trả lời

2

Sự cố xảy ra trong bash: Thực tế, việc kết nối đến nút qua ssh, gọi hàm mặc định là sh ở chế độ không tương tác. Nhưng khi bash được bắt đầu ở chế độ không tương tác, nó không đọc .bashrc nơi các biến đường dẫn và bí danh của tôi được lưu trữ. Vì vậy, tôi chuyển sang zsh và tất cả là ok ngay bây giờ! ;)

+1

'.bashrc' thường chứa dòng sau gần đầu: # Nếu không chạy tương tác, đừng làm bất cứ điều gì [-z "$ PS1"] && return Vì vậy, nếu bạn xác định biến 'PATH' trước đó, bạn có thể sử dụng tùy chỉnh 'erl' của bạn. Bash * không * đọc .bashrc ở chế độ không tương tác. – aronisstav

1

Tôi tin rằng bí danh sẽ không được chấp nhận

erl cần thực sự nằm trong đường dẫn của bạn

Ngoài ra, tôi tin rằng .bashrc của bạn cũng không thực thi. Vì vậy, bạn có thể phải liên kết tượng trưng "erl" với/usr/bin hoặc/usr/local/bin

+0

Cảm ơn bạn đã cố gắng trợ giúp .. nhưng .. Tôi đã thêm thư mục bin erlang vào biến $ PATH của tôi; Tôi đã đặt biến $ ERLANG_ROOT_DIR; tạo liên kết tượng trưng trong ~/to erl - nhưng không có gì thay đổi ... Btw, tôi đã cài đặt erlang trong ~/bin/erlang dir ... – Zim

1

Bạn dường như đang sử dụng a wrong format cho trường Máy chủ của start_link/3;

Nó phải là một nguyên tử đại diện cho máy chủ nơi tên nút (tham số thứ hai, cũng là một nguyên tử) nên được bắt đầu, dẫn đến nút Tên @ Host.

Vì vậy, trong trường hợp của bạn đó sẽ là

slave:start_link('n002', 'n002', "-rsh ssh"). 
+0

Cảm ơn, nhưng slave: start_link ('n002', 'n002', "- rsh ssh "). thực thi với cùng một kết quả - > slave: start_link ('n002', 'n002', "-rsh ssh"). bash: erl: không tìm thấy lệnh {error, timeout} – Zim

0

tôi đoán là Cookie erlang.

bạn có thể ping n002 không? nếu có, thì hai nút có cùng cookie không?

ví dụ bạn có thể thử: ERL -sname abc -rsh ssh -setcookie secretcookie

ERL> nô lệ: start (n002, tên, "-setcookie secretcookie"). %% để hai nút này chia sẻ cookie

0

Chỉ cần sử dụng

>ssh [email protected] erl 

để kiểm tra xem ERL là ok trên n002.

+0

erl là ok trên n002 nhưng vẫn cung cấp cho '{error, timeout}' – akin

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