故障解决之代码更新了,请求不生效

博客讲述了作者在一次代码更新后遇到系统请求报错的问题,发现部署的新代码并未生效。经过排查,发现是由于进程没有重启,且应用是由root用户启动,而非部署用户。这导致了部署脚本无法正常管理和启动应用。最终找到问题源头,强调了规范操作的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一个平常的下午

前2天的一个下午,准备好好写点代码。最后curd的事情较多!

一个同事来找我看个问题,说搞了快一天。

起身去看下,顺道当放松一下坐久了的身体,最近因为疫情,球场关闭,跑步少了,体重上涨不少,肚子也大了些

一个奇怪的问题

问题是这样的,系统一个请求一直报错,是读取一个配置失败,查了下日志,跟代码又对不上。

查了配置文件,也没有对应的配置。

我怀疑是部署的版本不对,让他部署最新的版本,重新部署一把。

发现打出的jar包的确是更新了,但是请求还是不对,这就有点奇怪了。

后来查了下进行信息

ps -ef | grep java

发现,对应的java进程,还是原来的,再新部署的时候并没有重新启动。

这就可以解释,为什么部署了新代码,系统却没有生效了。因为jar包更新了,但是进程还是原来的,没有重新加载启动,运行的还是老版本的代码。

遂开始排查为什么应用没有重新启动。

后来一个同事发现,该进行并不是部署用户启动的,而是root...
原来有一个骚操作,有人用root去手工启停了该应用,导致部署脚本执行的时候,根据不能kill掉该进行,也无法重新启动了。

都是操作不规范惹的祸

再现一下

在前面,介绍分布式定时任务系列1:XXL-job安装时,搭建了一个xxl-job,现在用这个程序来验证一下

现在这个程序用root用户启动了

 现在新建一个xxl-job用户

useradd xxl-job

并用这个用户去kill掉xxl-job这个java进程

会发现在根本kill不掉,但是在启动脚本里面,一般会使用/dev/null输出,所以也查不到启动日志了。。。 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值