由于“启动REST接口错误”,我无法启动上下文代理

时间:2015-04-21 08:32:45

标签: fiware fiware-orion

当我输入以下命令时:

/etc/init.d/contextBroker start

我得到以下输出:

Starting contextBroker...                         cat: /var/run/contextBroker/contextBroker.pid: No such file or directory
pidfile not found                                          [FAILED]

我有两台机器,我正在使用上下文代理练习,在我成功安装它并设法从远程气象站收到一条消息后几天内我没有触及第二台机器。 我看到目录/ var / run / contextBroker /实际上是空的

我现在应该怎么做才能解决这个问题?重新安装上下文代理或? 这就是我的错,我将来如何预防?当我的应用程序上线时,我不希望发生这种情况。

EDIT1:猎户座版本为0.20.0

EDIT2:我刚刚重新安装了contextBroker,我遇到了同样的问题。那个目录的内容是什么?我可以在里面创建文件吗?

EDIT3:由于将contextBroker作为系统服务运行仍会导致启动失败,我还尝试通过输入以下内容来简单地运行它:

在命令行中

contextBroker,之后我得到以下响应

INFO@14:03:03  contextBroker.cpp[1346]: Orion Context Broker is running
[root@localhost DevF12]# INFO@14:03:03  MongoGlobal.cpp[181]: Successful connection to database
INFO@14:03:03  contextBroker.cpp[1157]: Connected to mongo at localhost:orion
INFO@14:03:03  MongoGlobal.cpp[499]: Database Operation Successful ({ conditions.type: "ONTIMEINTERVAL" })
FATAL@14:03:03  rest.cpp[1013]: Fatal Error (error starting REST interface)

EDIT4:好的,所以我尝试了ps aux | grep contextBroker,结果是:

494       2196  0.0  7.0 688696 135116 ?       Ssl  Apr21   0:02 /usr/bin/contextBroker -port 1026 -logDir /var/log/contextBroker -pidpath /var/run/contextBroker/contextBroker.pid -dbhost localhost -db orion
root      7299  0.0  6.9 621052 134440 ?       Ssl  04:21   0:00 contextBroker -port 1028
root      8870  0.0  0.0 103256   848 pts/0    S+   08:51   0:00 grep contextBroker

/var/run/contextBroker/中根本没有任何内容 我应该自己放置contextBroker.pid吗?如果是的话,内容应该是什么?

EDIT5:我刚刚运行netstat -ntlpd | grep 1026,输出为:

tcp        0      0 0.0.0.0:1026                0.0.0.0:*                   LISTEN      2196/contextBroker  
tcp        0      0 :::1026                     :::*                        LISTEN      2196/contextBroker 

所以我猜想除了contextBroker正在听的其他什么?

1 个答案:

答案 0 :(得分:1)

记录(在评论中回答)。

消息FATAL@XX:XX:XX rest.cpp[1013]: Fatal Error (error starting REST interface)表示存在网络问题。通常是接口或已经使用过的端口。

通常的原因是Orion的另一个实例正在运行(例如,作为服务)。

解决问题的方法是彻底杀死这个过程。使用ps aux | grep contextBroker显示所有Orion进程并发出kill -9 <pid>,其中<pid>是进程号(ps命令输出的第二列)。