我正在尝试运行一个简单的RPC程序,我用rpcgen创建了这个程序。它是一个简单的阶乘程序。这是我的第一个RPC程序。make运行正常。可执行文件也被创建了。但是当尝试运行可执行文件时,我得到了这个错误:
$sudo ./fact_server
Cannot register service: RPC: Unable to receive; errno = Connection refused
unable to register (FACTPROGRAM, FACTVERSION, udp).
我试着在另一台有相同操作系统(Ubuntu)的PC上运行同样的程序,它在那里运行得很完美。
8条答案
按热度按时间ecfsfe2w1#
只需安装以下程序并尝试。
有关详细信息,请查看以下GitHub. https://github.com/riyazathali/RPC-HelloWorld
4sup72z82#
我在使用
rpcinfo
时也出现了错误。最后我不得不运行:如here中所建议的。
获取后:
rpc服务器二进制文件能够注册。
5anewei63#
未定义对“xdr_wrapstring”的引用
我认为这是最新ubuntu版本?22.04中的RCPBIND问题
f8rj6qna4#
首先检查portmapper是否正常工作,使用
rpcinfo
进行检查。如果出现任何错误,请安装portmap
xoshrz7s5#
检查服务是否正在使用
rpcinfo
运行。如果服务没有运行,你必须用
rpcbind
启动它。在Ubuntu上我需要root权限来运行服务。mpbci0fu6#
最近Linux版本的rpcbind有一个 bug/feature-它现在在系统 Boot 后不活动/不运行,但根据/usr/lib/systemd/system/中的systemctl配置rpcbind.service文件,它应该以某种方式被“套接字激活”:
检查此线程是否存在导致Ubuntu问题的相同错误/功能(https://bugs.launchpad.net/ubuntu/+source/rpcbind/+bug/1558196)。
您(我们)的rpcbind问题的简短答案是-为了运行RPC服务器代码,对系统的systemCtrl配置进行以下修改:
现在,设置rpcbind运行的预期方法是以某种方式访问/var/run/rpcbind.sock,我很感谢一些Unix/Linux大师,他们可能会启发我RPC服务器应用程序代码应该做些什么来实现这个rpcbind“套接字激活”效果。
ulmd4ohb7#
如何安装rpcgen
在终端上键入以下命令。
但是有时候上面的代码并不能帮助你安装
rpcgen
。那时你必须按照以下步骤操作。然后你就可以很容易地安装它了。你应该一步一步地按照这个步骤操作
最后,您可以使用命令
rpcinfo
对其进行检查v8wbuo2f8#
出现此问题是因为
portmap
或rpcbind
等实用程序不可用。请安装其中一个来解决此问题。