我正在尝试在新安装的CentOS 6.4 32位上安装REDHAWK v1.8.2,但我无法启动omniNames和omniEvents。
sudo /sbin/service omniEvents stop
Stopping CORBA event service: omniEvents
sudo /sbin/service omniNames stop
Stopping omniNames [ OK ]
sudo /sbin/service omniNames start
Starting omniNames [ OK ]
sudo /sbin/service omniEvents start
Starting CORBA event service on port 11169: omniEvents: [25848]: Warning - failed to resolve initial reference 'NameService'. Exception: TRANSIENT
omniEvents.
我试图通过调用命名客户端来验证omniNames是否真的在运行,但是出现了错误(见下文),所以似乎omniNames没有成功启动。
nameclt list
Caught a TRANSIENT exception when trying to validate the type of the
NamingContext. Is the naming service running?
作为调试过程的一部分,我试图杀死omniNames进程并以不同的方式启动它(见下文)。
sudo killall omniNames
omniNames -start
Wed Nov 13 21:08:08 2013:
Starting omniNames for the first time.
Error: cannot create initial log file '/var/omninames/omninames-orion.log':
No such file or directory
You can set the environment variable OMNINAMES_LOGDIR to specify the
directory where the log files are kept.
我不确定为什么omniNames无法创建日志文件,因为我确认/ var / omninames文件夹实际存在,甚至以root身份启动omniNames会产生相同的错误。无论如何,我将日志目录设置为我的桌面以避免错误(见下文)。
export OMNINAMES_LOGDIR=/home/$USER/Desktop/logs
mkdir -p /home/$USER/Desktop/logs
omniNames -start
Wed Nov 13 21:09:17 2013:
Starting omniNames for the first time.
Wrote initial log file.
Read log file successfully.
Root context is IOR:010000002b00000049444c3a6f6d672e6f72672f436f734e616d696e672f4e616d696e67436f6e746578744578743a312e30000001000000000000005c000000010102000a00000031302e322e382e333500f90a0b0000004e616d6553657276696365000200000000000000080000000100000000545441010000001c00000001000000010001000100000001000105090101000100000009010100
Checkpointing Phase 1: Prepare.
Checkpointing Phase 2: Commit.
Checkpointing completed.
即使看起来omniNames成功启动,当我打开另一个终端窗口并调用命名客户端时,我也会遇到与以前相同的错误(见下文)。
nameclt list
Caught a TRANSIENT exception when trying to validate the type of the
NamingContext. Is the naming service running?
我在/etc/omniORB.cfg文件中做的唯一修改是添加InitRef的行(见下文)。
InitRef = NameService=corbaname::localhost
InitRef = EventService=corbaloc::localhost:1169/omniEvents
此外,我没有连接到互联网,因此我的CentOS版本尚未从基础版本更新,除了手册附录J(http://sourceforge.net/projects/redhawksdr/files/redhawk-doc/1.9.0/REDHAWK_Manual_v1.9.0.pdf/download)中建议的增强库。
答案 0 :(得分:2)
看起来问题出在您的配置中。您的配置文件中有错误的端口。它应该是端口11169,但是你已经列出了1169端口。
有关详细信息,请参阅:http://redhawksdr.github.io/Documentation/mainch2.html#x4-120002.6。
关于omniOrb的一些其他观察和技巧,如果这不是问题。
有时候omninames / omnievents会陷入糟糕的状态。修复方法是删除omniNames和omniEvents创建的日志文件,然后重新启动服务。它们位于:
的/ var / lib中/ omniEvents / *
的/ var / omniNames / *
您需要root才能删除这些文件。我总是忘记他们所处的位置,经常做一个“找到omni | grep -i log”来提醒自己,但你必须以root身份执行此操作,因为标准用户看不到它们。
虽然没关系,但我个人发现使用127.0.0.1比localhost更可靠。出于某种原因,在配置文件中使用VM中的localhost过去曾给我带来问题。考虑使用127.0.0.1而不是localhost。这也是Redhawk手册当前版本的建议。
您提到您使用的是Redhawk v1.8.2。作为仅供参考,1.8系列中最新的REDHAWK版本目前为v1.8.5,最近也发布了1.9.0。
希望这可以让你开始运行!