背景
以前多使用tomcat容器部署war项目或者使用jenkins直接部署,没有亲自体验过部署jar。所以,这次接触了一个SpringBoot项目之后直接采用jar部署的方式试试水,然后就挂了。。
过程
首先控制台运行java -jar -Dserver.port=8090 xx.jar & 后台运行程序,看了一下日志也能正常输出以为就大功告成了。不料高兴不到2h,程序就挂了。
2021-02-25 10:10:51.993 INFO 5392 --- [ Thread-3] o.s.s.c.ThreadPoolTaskScheduler : Shutting down ExecutorService 'threadPoolTaskScheduler'
2021-02-25 10:10:51.994 INFO 5392 --- [ Thread-3] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Shutdown initiated...
2021-02-25 10:10:51.996 INFO 5392 --- [ Thread-3] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Shutdown completed.
看了下报错(如上图),以为是数据库连接池问题,然后检查了application.yml配置,结果跟其它boot项目的配置都一样啊。初步诊断无果之后,开始一顿百度+尝试。
终于,男主光环照耀下,迎来大结局。我在控制台运行java -jar xx.jar & 以为可以脱离终端后台运行,实际还是受控制台影响,当控制台超时自动断开连接,程序也随之挂掉。
解决方案一
控制台输入改为
nohup java -jar -Dserver.port=8090 xx.jar > xx.log 2>&1 &
使用nohup不挂断运行,并指定日志输出。
解决方案二
把启动命令
java -jar -Dserver.port=8090 xx.jar &
写到shell脚本里面,执行shell来运行就没问题,日志会自动输出到当前目录的 nohup.out 文件中。
总结
日常踩坑,永无止境。
想起了一个大佬说过的话,你知道的越多,你不知道的就越多。
版权声明:本文内容始发于简书>作者:蛋皮皮652,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
始发连接:https:
在此特别鸣谢原作者的创作。
此篇文章的所有版权归原作者所有,商业转载建议请联系原作者,非商业转载请注明出处。