Spring Boot 和 systemctl 停止不起作用

Spring Boot 和 systemctl 停止不起作用

我的应用程序使用 Spring Boot 2.3.1.RELEASE,它是一个使用嵌入式 Tomcat 并监听端口 10605 的可执行 jar。我在 CentOS Linux 版本 7.6.1810(核心)上部署。

我采取了以下步骤:

  1. SPEEDYF.服务创建

[单元]

描述=SPEEDYF

之后=syslog.target

[服务]

用户=root

ExecStart=/usr/local/bin/SPEEDYF/SPEEDYF.sh

成功退出状态 = 143

[安装]

WantedBy=多用户.目标

  1. 创建可执行文件 SPEEDYF.sh

#!/ 垃圾箱 / 重击

sudo java -jar -Dspring.profiles.active = prod /usr/local/bin/SPEEDYF/SPEEDYF-0.0.1-SNAPSHOT.jar

首次运行命令:systemctl enable SPEEDYF.service 启动成功:systemctl start SPEEDYF.service

停止无法正常工作:systemctl stop SPEEDYF.service。也就是说,如果我运行 systemctl status SPEEDYF.service 命令,我会得到以下输出:

● SPEEDYF.service - SPEEDYF 已加载:已加载(/etc/systemd/system/SPEEDYF.service;已启用;供应商预设:已禁用) 活动:未活动(已停止).........

但应用程序仍在运行,也就是说,它写入应用程序日志,然后使用以下命令进行验证:

lsof -i -P -n | grep LISTEN

TCP 端口 10605 导致 LISTEN。

这些命令是以 root 用户身份执行的。我不明白该怎么做才能使停止功能正常工作。

提前致谢

相关内容