【发布时间】:2018-01-26 05:09:05
【问题描述】:
我正在尝试通过 ./stop-confluence.sh 停止融合,但它显示类似“找到 PID 文件但未找到匹配进程。停止中止”的错误。所以我尝试用“kill -9 pid”杀死该进程,但它显示“PID:未找到进程”。谁能告诉我这个过程出了什么问题。
【问题讨论】:
标签: devops confluence devops-services
我正在尝试通过 ./stop-confluence.sh 停止融合,但它显示类似“找到 PID 文件但未找到匹配进程。停止中止”的错误。所以我尝试用“kill -9 pid”杀死该进程,但它显示“PID:未找到进程”。谁能告诉我这个过程出了什么问题。
【问题讨论】:
标签: devops confluence devops-services
您可以列出进程并 grep confluence 并像这样 ps -ef|grep confluence 将其杀死,然后使用 pid kill it kill -9 2132
【讨论】:
要了解发生了什么,您必须了解该进程的初始化脚本。在您的情况下,它来自confluence。因此,当守护程序或 unix 进程/服务启动时,它是一种创建 pid 文件的流行方式/设计,该文件将保存 pid(进程 id)。这就是您在ps 输出中看到的数字。
现在由于一些错误的原因,当进程/守护进程死亡或退出时,它会将 pid 文件留在系统中。因此,当您尝试停止服务时,它会抛出异常:PID file found but no matching process was found. Stop aborted.
理想情况下,当进程退出时,pid 文件必须被它删除。
最后关于如何解决这个问题,没有单一的方法可以解决它。您必须查看服务启动时执行的初始化脚本。找出服务死亡的原因(除非有人故意杀死它)。如果停止服务会留下 pid 文件,则问题出在 init 脚本上。你需要修复它。
希望这会有所帮助!
【讨论】:
就我而言,失败的原因是
中的第二个启动脚本/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
这样第二个实例不会在服务器启动时启动。您也可以删除第二个启动脚本,但请在进行任何破坏性操作之前将其备份。
【讨论】: