点击登录,精彩内容等着你

记录一次kkFileView的启动失败问题

全栈侠客

2022-10-24
kkFileView为一款开源的在线预览文档的项目,非常好用并非常亲民,并一路有更新维护,值得国人使用。

生产环境中,突然kkFileView使用不了,不知怎么回事,想着先重新启动一次吧,看看有没有什么报错!

一、报错信息

  1. Caused by: java.lang.IllegalStateException: a process with acceptString 'socket,host=127.0.0.1,port=8100' is already running; pid 3435

这个报错,感觉有点怪怪的,kkFileView是默认启动端口是:8012,8100端口,应该是openoffice4的启动所使用的端口。

二、本人解决步骤

1.第一步:检测openoffice启动有没有问题

使用命令:ps -ef | grep soffice
查看是否启动成功:

发现已经启动了,所以应该不是openoffice的启动问题。
网上有人说使用修改openoffice的启动ip,把127.0.0.1修改为机器的内网ip,这个可以试一下的,不过可以先进行以下尝试:

  • kkFileView有没有问题,启动的话,查看日志,看看有没有什么别的错误
  • 重启kkFileView,看看错误日志

2.第二步:重新启动kkFileView

通过重新启动,发现错误为:

  1. Caused by: java.lang.IllegalStateException: a process with acceptString 'socket,host=127.0.0.1,port=8100' is already running; pid 3435

所以这个我觉得奇怪,所以先运行bin/shutdow.sh中,然后在尝试启动./startup.sh来启动
结果一样的错误…

3.现在怀疑,是不是openoffice的启动有问题,所以要不重新启动一下openoffic吧

  1. 通过命令:ps -ef | grep soffice
    然后kill掉对应的pwd,如上图中pid=7805,那么就kill 7805

  2. 重新启动openoffice

    1. # 进入 openOffice 安装目录
    2. cd /opt/openoffice4/program/
    3. # 在本地开启 openOffice 服务,端口为 8100。
    4. ./soffice -headless -accept="socket,host=127.0.0.1,port=8100:urp;" -nofirststartwizard &

    结果启动了之后,重新启动kkFileView还是一样的错误,,
    所以我尝试,修改一下openoffice启动的ip,修改为机器内网ip

    1. # 进入 openOffice 安装目录
    2. cd /opt/openoffice4/program/
    3. # 在本地开启 openOffice 服务,端口为 8100。
    4. ./soffice -headless -accept="socket,host=172.16.1.100,port=8100:urp;" -nofirststartwizard &
  3. 重新启动kkFileView
    发现报错信息,不是原来的:
    1. Caused by: java.lang.IllegalStateException: a process with acceptString 'socket,host=127.0.0.1,port=8100' is already running; pid 3435
    却是提示:端口占用,就是说8012端口占用了,
    我觉得奇怪了,kkfileView都没有启动,怎么会占用了8012端口。。

4.查找那个家伙占用了端口:8012

  1. 端口查看命令: netstat -lnp | grep 8012
  2. 查看进程详情命令:ps 7773
    如一下命令演示:
  1. [root@iZwz96whdvutxtvdc0vydmZ ~]# netstat -lnp | grep 8012
  2. tcp 0 0 0.0.0.0:8012 0.0.0.0:* LISTEN 7773/java
  3. [root@iZwz96whdvutxtvdc0vydmZ ~]# ps 7773
  4. PID TTY STAT TIME COMMAND
  5. 7773 pts/1 Sl 0:22 java -Dfile.encoding=UTF-8 -Dsun.java2d.cmm=sun.java2d.cmm.kcms.KcmsServiceProvider -Dspring.config.location=../config/application.properties -jar kkFileView-2
  6. [root@iZwz96whdvutxtvdc0vydmZ ~]#

好家伙呢,居然就是本身kkFileView占用了8012,但是目前是kkFileView没有启动哦?

我在每一次启动kkFileView的时候,都会首先./shutdown.sh的,然后在./startup.sh;
那么只能证明是:./shutdown.sh失败,没有杀死对应的线程


最后处理步骤:把占了8012的旧的kkFileView的,使用kill 7773后,重新启动./startup.sh就ok

三、总结

  1. 遇到问题,不要慌,要根据报错信息,一点点寻找问题的点
  2. centos命令呢,对于我们java开发人员,还是懂一点为好,基本的一些运维命令,记不住,最好记录下来
  3. 有时候,shutdown.sh的,未必真的结束了相关的进场,最好查询以便
阅读 12914     最后编辑 2022-10-24 12:37
文章补充
评论(0) 发表新评论
  • ...暂无评论...

我是有底线的 评论与点赞5分钟更新一次
回复评论
取消关闭

请先登录