1.场景

身为java工程师,不会点前端运维测试都不能算java工程师(滑稽.jpg),在小公司基本上运维都是后台包了,这篇博文也是记录如何在centos中部署Springboot项目。

2.相关命令

1.maven跳过测试打包命令

mvn clean package -DSkipTest

2.打开xshell。配合管道命令搜索java相关进程

#搜索全部进程
ps|ef

#配合管道符,搜索java进程
ps -ef|grep java

#只查询当前jar包程序的pid
pgrep -f ’java -jar xxx.jar‘

具体效果如下图

centos7 zip 打包时排除整个日志目录_标准输出


3.杀死进程

在这里插入代码片

kill -9 pid
#这里直接将pid换成要杀死的java项目进程id即可

4.运行jar包
一般我们连接服务器都是通过终端远程连接,如果我们使用java -jar命令运行jar包,如果关闭了终端,那么我们的java项目也就停止了。所以,这里推荐使用nuhup java -jar 命令代替原先命令。该命令可以使项目在关闭终端后仍可以继续运行

nohup java -jar xxx.jar >nohup 2>&1 &

nohup: 不挂断的执行命令,忽略所有的挂断信号。 运行后台命令 最后加 &
在jar目录下会生成一个nohup.out文件,默认的log输出到这里了。
注意:
以上命令是不输出启动日志的,运行后会只输出一个运行的进程号。
想要输出启动日志可以这样:

java -jar xx.jar > log.file 2>&1 &

但我们需要给log.file文件权限

chmod 777 -R 文件

3.相关命令解释

2>&1含义
& 1 更准确的说是文件描述符 1,
而1 一般代表的就是STDOUT_FILENO,实际上这个操作就是一个dup2(2)调用.
它标准输出到all_result ,然后复制标准输出到文件描述符2(STDERR_FILENO), 其后果就是文件描述符1和2指向同一个文件表项,也可以说错误的输出被合并了
.其中0表示键盘输入 1表示屏幕输出 2表示错误输出.把标准出错重定向到标准输出,然后扔到/DEV/NULL下面去。通俗的说,就是把所有标准输出和标准出错都扔到垃圾桶里面。
最后的& 表示后台运行