一个平常的下午
前2天的一个下午,准备好好写点代码。最后curd的事情较多!
一个同事来找我看个问题,说搞了快一天。
起身去看下,顺道当放松一下坐久了的身体,最近因为疫情,球场关闭,跑步少了,体重上涨不少,肚子也大了些
一个奇怪的问题
问题是这样的,系统一个请求一直报错,是读取一个配置失败,查了下日志,跟代码又对不上。
查了配置文件,也没有对应的配置。
我怀疑是部署的版本不对,让他部署最新的版本,重新部署一把。
发现打出的jar包的确是更新了,但是请求还是不对,这就有点奇怪了。
后来查了下进行信息
ps -ef | grep java
发现,对应的java进程,还是原来的,再新部署的时候并没有重新启动。
这就可以解释,为什么部署了新代码,系统却没有生效了。因为jar包更新了,但是进程还是原来的,没有重新加载启动,运行的还是老版本的代码。
遂开始排查为什么应用没有重新启动。
后来一个同事发现,该进行并不是部署用户启动的,而是root...
原来有一个骚操作,有人用root去手工启停了该应用,导致部署脚本执行的时候,根据不能kill掉该进行,也无法重新启动了。
都是操作不规范惹的祸
再现一下
现在这个程序用root用户启动了
现在新建一个xxl-job用户
useradd xxl-job
并用这个用户去kill掉xxl-job这个java进程
会发现在根本kill不掉,但是在启动脚本里面,一般会使用/dev/null输出,所以也查不到启动日志了。。。