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窗口后,程序还在后台执行不会停掉