2012-05-04 40 views
16

Tôi đang cố gắng chạy một chương trình RPC đơn giản mà tôi đã tạo bằng rpcgen. Chương trình giai thừa đơn giản của nó. Đây là chương trình RPC đầu tiên của tôi. Công việc làm tốt. Các tệp thi hành cũng được tạo. Nhưng khi cố gắng chạy tập tin thực thi, tôi nhận được lỗi này:Lỗi khi cố gắng chạy một chương trình RPC đơn giản

$sudo ./fact_server 
Cannot register service: RPC: Unable to receive; errno = Connection refused 
unable to register (FACTPROGRAM, FACTVERSION, udp). 

Tôi cố gắng chạy cùng một chương trình trên một máy tính với hệ điều hành tương tự (ubuntu). Nó chạy hoàn hảo ở đó.

+0

Âm thanh như một mục khác đang chạy trên cổng bạn muốn liên kết với – Nick

Trả lời

21

Trước tiên, bạn kiểm tra xem máy chiếu có đang hoạt động hay không, sử dụng rpcinfo để kiểm tra. Nếu bạn gặp bất kỳ lỗi nào, hãy cài đặt portmap

+0

Có, cảm ơn. Điều này giải quyết được vấn đề của tôi. – arkiver

+0

@arkiver: Chào mừng – rekenerd

6

Kiểm tra xem dịch vụ có đang chạy hay không bằng cách sử dụng rpcinfo. Đây là những gì tôi nhận được.

$ rpcinfo 
    program version netid  address    service owner 
    100000 4 tcp6  ::.0.111    portmapper superuser 
    100000 3 tcp6  ::.0.111    portmapper superuser 
    100000 4 udp6  ::.0.111    portmapper superuser 
    100000 3 udp6  ::.0.111    portmapper superuser 
    100000 4 tcp  0.0.0.0.0.111   portmapper superuser 
    100000 3 tcp  0.0.0.0.0.111   portmapper superuser 
    100000 2 tcp  0.0.0.0.0.111   portmapper superuser 
    100000 4 udp  0.0.0.0.0.111   portmapper superuser 
    100000 3 udp  0.0.0.0.0.111   portmapper superuser 
    100000 2 udp  0.0.0.0.0.111   portmapper superuser 
    100000 4 local  /run/rpcbind.sock  portmapper superuser 
    100000 3 local  /run/rpcbind.sock  portmapper superuser 
     24 5 udp  0.0.0.0.3.99   -   superuser 
     24 5 tcp  0.0.0.0.3.100   -   superuser 

Nếu dịch vụ không hoạt động, bạn phải bắt đầu với rpcbind. Trên Ubuntu tôi cần quyền root để chạy dịch vụ.

1

Sự cố phát sinh do không có tiện ích như "portmap" hoặc "rpcbind".

  • Cài đặt hoặc là portmap hoặc rpcbind. Nó sẽ giải quyết vấn đề.
+0

Có. Điều đó giải quyết được vấn đề. Cảm ơn. – arkiver

1

Làm thế nào để cài đặt rpcgen

Loại lệnh này trên thiết bị đầu cuối.

sudo apt-get cài đặt rpcbind

nhưng đôi khi mã trên sẽ không giúp bạn bỏ qua rpcgen.

enter image description here

Lúc đó bạn phải làm theo các steps.Then bạn có thể dễ dàng cài đặt nó. bạn nên làm theo bước này bằng cách bước

1) sudo apt-get update
2) sudo apache2 tìm kiếm apt-cache 3) sudo apt-get install rpcbind

Cuối cùng, bạn có thể kiểm tra nó bằng cách sử dụng này lệnh rpcinfo

enter image description here

3

có một lỗi/tính năng trong phiên bản Linux gần đây của rpcbi nd - bây giờ nó không hoạt động/hoạt động sau khi khởi động hệ thống, nhưng phải bằng cách nào đó được "ổ cắm kích hoạt" theo systemctl tập tin cấu hình rpcbind.service trong/usr/lib/systemd/system /:

[Install] 
Also=rpcbind.socket 

Kiểm tra chủ đề này trên cùng một lỗi/tính năng đã gây ra các sự cố của Ubuntu (https://bugs.launchpad.net/ubuntu/+source/rpcbind/+bug/1558196).

Câu trả lời ngắn như của bạn (chúng ta) vấn đề với rpcbind là - để chạy mã máy chủ RPC, làm việc sửa đổi này để systemctrl cấu hình của hệ thống của bạn:

sudo systemctl add-wants multi-user.target rpcbind 

Bây giờ, dự định để thiết lập chạy rpcbind là bằng cách nào đó truy cập /var/run/rpcbind.sock, tôi sẽ nợ nhiều cho một số chuyên gia Unix/Linux có thể khai sáng cho tôi về mã ứng dụng máy chủ RPC sẽ làm gì để đạt được kích hoạt socket "rpcbind" này " hiệu ứng.

+0

Tôi gặp sự cố này sau khi khởi động lại và dòng cuối cùng của bạn đã giúp - cảm ơn – serup

+0

@ serup: Ý của bạn là 'sudo systemctl ....'? Vì đoạn cuối cùng của tôi là một câu hỏi, tôi không biết câu trả lời vẫn còn. Làm thế nào để đạt được 'kích hoạt socket' đó - vì cố gắng sử dụng dịch vụ rpc không làm điều đó. – vleo

+0

có sau khi chạy dòng cuối cùng và khởi động lại hệ thống, sau đó các vấn đề bị mất – serup

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