由于 "error starting REST interface",我无法启动上下文代理

I cant start context broker due to "error starting REST interface"

当我输入以下命令时:

/etc/init.d/contextBroker start

我得到以下输出:

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

我有两台机器,我在其中练习上下文代理,在我成功安装第二台机器并设法从远程气象站接收到 post 消息后的几天里,我没有接触过它。 我看到目录 /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 没有别的东西在监听?

备案(已在评论中回复)

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

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

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