kkfilesview和JeecgBoot服务断电来电后重启总结

先梳理目录信息

  1. kkFileView
  • 程序目录:/home/kkfilesview/kkFileView-4.4.0
  • jar包:/home/kkfilesview/kkFileView-4.4.0/bin/kkFileView-4.4.0.jar
  • 启动命令原参数:java -Dfile.encoding=UTF-8 -Dspring.config.location=../config/application.properties -jar kkFileView-4.4.0.jar

    工作目录必须是 /home/kkfilesview/kkFileView-4.4.0/bin,../config 才可以正确找到配置文件

  1. JeecgBoot
  • 目录:/home/qhoa
  • jar包:/home/qhoa/jeecg-boot-module-system-3.0.jar
  • 启动命令:/usr/java/jdk1.8.0_144/bin/java -jar -Xms512m -Xmx512m /home/qhoa/jeecg-boot-module-system-3.0.jar

⚠️ 当前问题:kkFileView双实例运行(18680、19189两个进程),必须先全部杀掉,再用systemd托管,否则端口冲突!

第一步:停止现有的Java旧进程

# 杀掉两个kkFileView进程
kill 18680
kill 19189
# 杀掉jeecg进程
kill 19807

# 确认全部java业务进程清理干净
ps -ef | grep java

如果kill无法正常关闭,使用 kill -9 进程号

第二步:创建 kkfileview.service

vim /etc/systemd/system/kkfileview.service

粘贴下面完整内容

[Unit]
Description=kkFileView 文件预览服务
After=network.target mysqld.service
Wants=network.target mysqld.service

[Service]
User=root
# 工作目录,非常关键,对应bin目录,才能识别 ../config
WorkingDirectory=/home/kkfilesview/kkFileView-4.4.0/bin
# jdk路径,你服务器jdk是/usr/java/jdk1.8.0_144/bin/java
ExecStart=/usr/java/jdk1.8.0_144/bin/java -Dfile.encoding=UTF-8 -Dspring.config.location=../config/application.properties -jar kkFileView-4.4.0.jar
Restart=on-failure
RestartSec=5
StandardOutput=journal+console
StandardError=journal+console

[Install]
WantedBy=multi-user.target

第三步:创建 jeecgboot.service

vim /etc/systemd/system/jeecgboot.service

粘贴下面完整内容

[Unit]
Description=JeecgBoot 后台业务服务
After=network.target mysqld.service
Wants=network.target mysqld.service

[Service]
User=root
WorkingDirectory=/home/qhoa
ExecStart=/usr/java/jdk1.8.0_144/bin/java -jar -Xms512m -Xmx512m jeecg-boot-module-system-3.0.jar
# 等待10秒,等mysql完全启动,避免数据库连接失败
ExecStartPre=/bin/sleep 10
Restart=on-failure
RestartSec=5
StandardOutput=journal+console
StandardError=journal+console

[Install]
WantedBy=multi-user.target

第四步:重载systemd(新增/修改service必须执行)

systemctl daemon-reload

第五步:设置开机自启 + 立即启动服务

# kkFileView
systemctl enable --now kkfileview

# JeecgBoot
systemctl enable --now jeecgboot

日常运维命令

# 查看状态
systemctl status kkfileview
systemctl status jeecgboot

# 重启
systemctl restart kkfileview
systemctl restart jeecgboot

# 停止
systemctl stop kkfileview
systemctl stop jeecgboot

# 查询是否开机自启(断电来电自动拉起)
systemctl is-enabled kkfileview
systemctl is-enabled jeecgboot

# 实时查看日志(排查启动报错)
journalctl -u kkfileview -f
journalctl -u jeecgboot -f

整套服务开机顺序(断电上电)

network → mysqld → nginx → kkfileview → jeecgboot

jeecgboot加了sleep10,预留mysql启动时间,减少数据库连接失败问题

验证方案

执行 reboot 重启服务器,开机后执行:

systemctl status mysqld nginx kkfileview jeecgboot
ps -ef | grep java

常见坑提醒

  1. WorkingDirectory 不能写错,kkFileView如果目录不对,../config/application.properties 找不到,直接启动失败
  2. 旧进程没有杀干净,会端口冲突,服务启动失败
  3. 修改service文件后,必须执行daemon-reload
  4. 如果启动失败,优先用 journalctl -u xxx 看详细报错

你执行完启动命令后,把 systemctl status kkfileview 和 systemctl status jeecgboot 的结果发我,我帮你确认是否正常。

补充:kkFileView自带shutdown.sh、startup.sh脚本,我们这里直接用java命令启动,避开自带脚本的nohup后台方式,交给systemd管理崩溃自动重启。

要不要我给你写一条一键巡检脚本,一次性查看 mysqld、nginx、kkfileview、jeecgboot 全部服务状态?

posted @ 2026-10-13 16:22  郭慕荣  阅读(5)  评论(0)    收藏  举报