当我尝试将我的独立实例升级到新版本时,我经常遇到这个问题,手动创建pid文件很容易解决。但是在安装新版本0.14.0的时候,我已经做了我所知道的一切,甚至是一个干净的安装,这个"步骤"不起作用。也许新的更新应该通过yum update命令提供。
[root@~]# /etc/init.d/contextBroker start
Starting...
contextBroker is stopped
Starting contextBroker... cat: /var/log/contextBroker/contextBroker.pid: No such file or directory
pidfile not found [FAILED]
当我在FG(contextBroker -fg)中运行它时,它工作得很好,这是我使用的方法。
这是我的curl localhost:1026/version
输出:
<orion>
<version>0.14.0</version>
<uptime>0 d, 0 h, 1 m, 59 s</uptime>
<git_hash>5e3d210e4b15fa9ebbfa07c93dd41f8b41697d0e</git_hash>
<compile_time>nodate</compile_time>
<compiled_by>fermin</compiled_by>
<compiled_in>centollo</compiled_in>
</orion>
另外这是我的MD5校验和输出:
[root@~]# md5sum /usr/bin/contextBroker
d3f24c4670a9d25a22c8877c3cdcc2b4 /usr/bin/contextBroker
我怎么解决这个问题?
似乎由于任何原因(例如在某些更新中)PID文件不存在或其内容与内存中运行的进程的实际PID不一致,/etc/init.d/contextBroker
服务脚本可能无法停止代理。
- 检查是否有一个已存在的contextBroker进程正在运行。
- 在
/etc/init.d/contextBroker stop
或/etc/init.d/contextBroker restart
之后进程不停止 - 获取进程的PID(提示:使用
ps ax | grep contextBroker
),然后在该PID上使用kill
终止该进程后,/etc/init.d/contextBroker start
应该会再次工作。
感谢Massimiliano Nigrelli在他的团队帮助调试这个问题。
卸载并重新安装ContextBroker就像一个魅力!