目录
三、windows系统下运行bat脚本实现后台运行及停止jar文件
一、Linux运行jar包命令
方式一
java -jar shareniu.jar
特点:当前ssh窗口被锁定,可按CTRL + C打断程序运行,或直接关闭窗口,程序退出
方式二
java -jar shareniu.jar &
&代表在后台运行。
特定:当前ssh窗口不被锁定,但是当窗口关闭时,程序中止运行。
继续改进,如何让窗口关闭时,程序仍然运行?
方式三
nohup java -jar shareniu.jar &
nohup 意思是不挂断运行命令,当账户退出或终端关闭时,程序仍然运行
当用 nohup 命令执行作业时,缺省情况下该作业的所有输出被重定向到nohup.out的文件中,除非另外指定了输出文件。
方式四
nohup java -jar shareniu.jar >/dev/null &
解释下 >temp.txt
command >out.file
command >out.file是将command的输出重定向到out.file文件,即输出内容不打印到屏幕上,而是输出到out.file文件中。
nohup java -jar test.jar >temp.txt &
可通过jobs命令查看后台运行任务
jobs
那么就会列出所有后台执行的作业,并且每个作业前面都有个编号。
如果想将某个作业调回前台控制,只需要 fg + 编号即可。
fg 23
查看某端口占用的线程的pid
netstat -nlp | grep :8888
二、Linux设置jar包开机自启动
首先编写一个启动jar包的脚本,位置随意,这里以/home/java为例,文件名叫startup.sh。
export JAVA_HOME=/opt/jdk8
export PATH=$JAVA_HOME/bin/:$PATH
nohup java -jar /home/java/test.jar > /home/java/out.log 2>1 &
chmod 777 /home/java/out.log
然后运行chmod命令,使其可运行。
chmod +x /home/java/startup.sh
接着编辑/etc/rd.local,加上一行
/home/java/startup.sh
系统启动后,在加载完所有组件后会以root身份执行rd.local的命令。
给rd.local可运行权限
chmod +x /etc/rd.local
三、windows系统下运行bat脚本实现后台运行及停止jar文件
1、先建两个bat文件,分别命名为start.bat,stop.bat,然后把这两个文件和要执行的jar包放到同一个目录下。
2、运行start.bat就可以执行哪个jar文件了,并且在任务管理器中可以看到这个进程,运行stop.bat就可以停止这个进程了。
start.bat脚本内容为:
@echo off
start javaw -jar xxx.jar
exit
stop.bat脚本内容为:
@echo off
taskkill -f -t -im javaw.exe
exit
3、修改启动进程名
在jdk的安装路径中/jkd/bin中将javaw.exe复制一个,改名jar对应的进程名(想改啥就该啥)
在jar同级目录下创建一个run.bar的文件,内容如下:
@echo off
start [修改后的javaw名称] -jar [jar的全名称]
exit
4、输出日志
javaw -jar microservicecloud-eureka-7001-0.0.1-SNAPSHOT.jar >1.log &
java -jar SNAPSHOT.jar --spring.profiles.active=test -Dspring.config.location=application-test.yml
–spring.profiles.active 指定读取什么后缀的配置文件
-Dspring.config.location 指定读取哪个配置文件
java -jar filesys.jar --spring.profiles.active=prod > C:/fileSystem/files/1.log &