- 博主最近在更新自己的项目的时候,打包好jar换下之前的jar,然后准备重启项目,遇到了些问题,网上关于这些说的不是很细节,故写篇博客记录下。
- 我们后台启动项目一般是:
nohup java -jar 包名.jar >log.txt &
。这种方式会在jar目录下生成log.txt。这里我们先查看当前项目是否还在运行:ps -ef | grep blog-backend-0.0.1-SNAPSHOT.jar
,可以看到如下结果(例图):
- grep是默认就会有的,不用管,java字样的就是我们正在跑的项目,替换前需要做好日志备份,由于只是个人项目,其他细节就不多说了。我们准备完毕后杀死该进程:
kill 32733
或者kill -9 32733
,这串数字是项目进程对应的PID。 - 杀掉后,再次执行
ps -ef | grep blog-backend-0.0.1-SNAPSHOT.jar
查看是否只有grep了,又或者都没有了,那么此时就可以替换上新的项目jar包了:nohup java -jar blog-backend-0.0.1-SNAPSHOT.jar > /log/blog_v1.3.txt 2>&1 &
,这里可能会报nohup: redirecting stderr to stdout
有关错误,请检查,你的第一个“>”后边跟的是不是你的日志目录,还有最好把之前那个项目目录下生成的nohup.txt(如果有的话,我这里是log.txt)备份并删除,这里这个尖括号作用是将打印信息重定向到日志文件。 - 这里解释下第二个">",左边的2代表的是标准错误——stderr,左边也可以是1——标准输出stdout,2/1> 表示将标准错误/输出重定向,右边可以是上边&1或者&2,分别表示重定向到标准输出和标准错误,后边也可以跟文件名:
- 2> stderr.log
- 1> stdout.log
这里不再细谈
- 注意,最后边的"&"不能掉,它的前边要有一个空格,请检查
- 关于kill进程,我不知道有没有更好的不kill进程,而是
服务器项目部署——后台启动、关闭、替换踩坑
猜你喜欢
转载自blog.csdn.net/weixin_42173451/article/details/105858445
今日推荐
周排行