Linux 部署SpringBoot项目jar包
- 首次部署
- 非首次部署
- nohup不输出配置文件
首次部署
//首次部署:
nohup java -jar demo01.jar >temp.text 2>&1 &
其中:
—nohup 当账户退出或终端关闭时,程序仍然运行
— & 客户端关闭,后台停止运行
— temp.text 是存控制台文件(缺省情况下该作业的所有输出被重定向到nohup.out的文件中)
— 使用 tail -f temp.text 实时查看控制台文件
— 2>
表示把标准错误(stderr)重定向,标准输出(stdout)是1。
尖括号后面可以跟文件名,或者是&1, &2,分别表示重定向到标准输出和标准错误。
2> &1
1> &2
2> stderr.log
1> stdout.log
非首次部署
1.查看正在运行的jar包
ps aux|grep demo01.jar | grep -v grep
2.杀死进程
kill -9 进程号
3.部署
nohup java -jar demo01.jar >temp.text 2>&1 &
例子:
[root@i-znbweskf opt]# ps aux|grep demo01.jar | grep -v grep
root 8043 1.2 7.6 3542360 298376 pts/0 Sl 17:34 0:12 java -jar demo01.jar // 8043表示进程号
[root@i-znbweskf opt]# kill 8043 //杀死进程
[root@i-znbweskf opt]# ps aux|grep demo01.jar | grep -v grep
[1]+ Exit 143 nohup java -jar demo01.jar > demo01.log 2>&1 //查看是否杀死
[root@i-znbweskf opt]# ps aux|grep demo01.jar | grep -v grep //查看是否杀死
[root@i-znbweskf opt]# nohup java -jar demo01.jar >demo01.log 2>&1 & //部署
nohup不输出配置文件
问题:
nohup部署jar包时会指定控制台输出入文件,本身项目就已经有日志的输出备份,nohup输出的日志都在一个文件中,长久以往文件体积越来越大
解决:
命令语法: nohup xxxx >/dev/null 2>&1 &
比如: nohup java -jar demo01.jar >/dev/null 2>&1 &
命令详细分析
/dev/null :Linux下有一个特殊的文件/dev/null,它就像一个无底洞,所有重定向到它的信息都会消失得无影无踪。这一点非常有用,当我们不需要回显程序的所有信息时,就可以将输出重定向到/dev/null。
1 :表示stdout标准输出,系统默认值是1,所以”>/dev/null”等同于”1>/dev/null”
2 :表示stderr标准错误输出 (stdout不包括stderr)
& :表示等同于的意思,2>&1,表示2的输出重定向等同于1
1 > /dev/null 2>&1 语句含义:
1 > /dev/null : 首先表示标准输出重定向到空设备文件,也就是不输出任何信息到终端,说白了就是不显示任何信息。
2>&1 :接着,标准错误输出重定向(等同于)标准输出,因为之前标准输出已经重定向到了空设备文件,所以标准错误输出也重定向到空设备文件。
最后一个&: 是让该命令在后台执行,就是关闭ssh窗口后,程序还在后台执行不会停掉