1. Jar 包启动
(窗口启动: jar -jar: 命令行启动,窗口停留)
下面介绍后台启动方式
1.1 Linux
java -jar xxx.jar &
- 说明: 在末尾加入 & 符号
-
jar -jar, ctrl+z
(1)执行java -jar xxx.jar后
(2)ctrl+z 退出到控制台,执行 bg
(3)exit
完成以上3步,退出SHELL后,jar服务一直在后台运行。 -
nohup java -jar xxxx.jar & (推荐)
(1) 输出日志:nohup java -jar babyshark-0.0.1-SNAPSHOT.jar > log.file 2>&1 &
上面的2 和 1 的意思如下:
0 标准输入(一般是键盘)
1 标准输出(一般是显示屏,是用户终端控制台)
2 标准错误(错误信息输出)
- kill process
1. netstat -anp查看PID(process id)
2. kill -9 pid
关于netstat 命令:
-a (all)显示所有选项,netstat默认不显示LISTEN相关
-t (tcp)仅显示tcp相关选项
-u (udp)仅显示udp相关选项
-n 拒绝显示别名,能显示数字的全部转化成数字。(重要)
-l 仅列出有在 Listen (监听) 的服務状态
-p 显示建立相关链接的程序名(macOS中表示协议 -p protocol)
-r 显示路由信息,路由表
-e 显示扩展信息,例如uid等
-s 按各个协议进行统计 (重要)
-c 每隔一个固定时间,执行该netstat命令。
过滤:
Linux:netstat -anp| grep 3306
1.2 Window
- 新建 .bat文件
@echo off
start javaw -jar xxx.jar
exit
- 参数设定
@echo off
start javaw -jar -Dspring.config.location=C:\TestPlatform8083\application.properties C:\TestPlatform8083\TestPlatform-===.jar
exit
- 偶尔还需要指定编码格式,-Dfile.encoding=utf-8
如果想要指定Log日志
@echo off
start java -jar -Xms8000m -Xmx8000m -Xmn4000m test.jar > log\batchLog%date:~0,4%%date:~5,2%%date:~8,2%.log
exit
- @echo off 当执行失败的时候,不打印失败的信息
如果是调试阶段,可以将这一段注掉 - @pause 是会弹出命令行窗口,提示“请按任意键继续...”,不需要暂停的脚本,就把这一行注释掉
- 需要指定java 启动内存的大小
java -jar -Xms8000m -Xmx8000m -Xmn4000m test.jar
- 杀进程
- 查询过滤:
window: netstat -ano|findstr "3306" - 如要杀nginx.exe进程,命令如下:
taskkill /im nginx.exe /f
NOTE: /f在这里意为强制结束进程 - 也可以使用pid杀:
taskkill /pid {pid}
2. War 包启动
Reference
- 流风雨情. (2020). java jar后台启动的三种方式
- 刘信坚的博客. (2018). Java -jar 如何在后台运行项目