找到pid文件,但没有找到匹配的进程。停止中止

问题描述 投票:0回答:3

我试图通过 ./stop-confluence.sh 停止汇合,但它显示这样的错误:“找到 PID 文件,但未找到匹配的进程。停止中止。”所以我尝试用“kill -9 pid”杀死该进程,但它显示“PID:找不到进程”。谁能告诉我这个过程出了什么问题吗?

devops confluence devops-services
3个回答
0
投票

您可以列出进程并 grep confluence 并像这样杀死它

ps -ef|grep confluence
,然后使用 pid 杀死它
kill -9 2132


0
投票

要了解发生了什么,您必须了解该进程的初始化脚本。就你而言,它是来自

confluence
的东西。因此,当守护进程或 unix 进程/服务启动时,创建一个 pid 文件来保存 pid(进程 ID)是一种流行的方法/设计。这就是您在
ps
输出中看到的数字。

现在由于某些错误原因,当进程/守护进程死亡或退出时,它会将pid文件留在系统中。因此,当您尝试停止服务时,它会抛出异常:

PID file found but no matching process was found. Stop aborted.

理想情况下,当进程退出时,pid 文件必须被它删除。

最后关于如何解决这个问题,没有单一的方法可以解决它。您必须查看服务启动时执行的初始化脚本。找出服务终止的原因(除非有人故意终止它)。如果停止服务后留下 pid 文件,则问题出在 init 脚本上。你需要修复它。

希望这有帮助!


0
投票

在我的例子中,失败的原因是

中的第二个启动脚本

/etc/init.d/

在原始脚本完成后尝试第二次启动 Jira。

$ sudo ll /etc/init.d/ | grep jira
-rwxr-xr-x 1 root root  261 * * * jira
-rwxr-xr-x 1 root root  261 * * * jira1

我已通过执行禁用了“jira1”启动脚本的执行

$ sudo chmod -x /etc/init.d/jira1
$ sudo ll /etc/init.d/ |grep jira
-rwxr-xr-x 1 root root  261 * * * jira
-rw-r--r-- 1 root root  261 * * * jira1

这样第二个实例就不会在服务器启动时启动。您也可以删除第二个启动脚本,但请在进行任何破坏性操作之前先对其进行备份。

© www.soinside.com 2019 - 2024. All rights reserved.