CentOS7.x下在后台运行和关闭(Java)项目
需求
在一般情况下,在服务器通过 java -jar xxx.jar 来运行一个jar包。但是如果退出了控制台,那么这个程序就将被关闭。因此让jar包后台运行十分必要。
解决方案
运行
方式一:
1 | java -jar xx.jar & |
&代表在后台运行
方式二:
nohup java -jar xx.jar &
方式三(推荐):
1 | nohup java -jar xxx.jar >log.file 2>&1 & |
上面的意思如下:
- 0 标准输入(一般是键盘)
- 1 标准输出(一般是显示屏,是用户终端控制台)
- 2 标准错误(错误信息输出)
>log.file
将运行的jar 错误日志信息输出到log.file文件中来,如果不指定,默认该项目所有输出被重定向到nohup.out的文件中。可查看运行的日志文件,查看jar包启动有没有报错2>&1
就是表示将错误重定向输出到标准输出上- 最后一个&,表示在后台运行。
推荐后两种方式,因为前者是直接后台运行jar包,并没有进入到java的dos窗口。
但假如我们的java程序需要我们进入到它的dos窗口,输入一些参数来运行的话,前两种是不可取的。因为可以在运行jar包后进入java的dos窗口来输入一些程序需要的参数,随后退出dos窗口让其在后台运行。
关闭后台运行的Java jar包项目
方法一
直接杀死进程(根据端口)
1 | sudo fuser -k -n tcp 8888 |
方法二
根据pid 停止运行
1.查看进程命令为
1 | ps aux|grep myblog-0.0.1-SNAPSHOT.jar |
2.将会看到此jar的进程信息
1 | root 9150 0.0 0.0 112708 1012 pts/1 S+ 19:05 0:00 grep --color=auto blog-api-0.0.1-SNAPSHOT.jar |
3.其中9150则为此jar的pid,杀掉命令为
1 | kill -9 9150 |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 CodeRain!
评论
WalineValine