一、环境配置(以下是lz的环境配置位置)

  • /home/java/目录:jdk1.80安装位置
    在这里插入图片描述

  • /usr/local/jar/目录:项目jar包位置
    在这里插入图片描述

  • /usr/local/jar/log/目录:日志文件的位置
    在这里插入图片描述

  • /usr/local/jar/batchCommands/目录:批处理命令文件
    在这里插入图片描述

二、linux环境中springboot加载jar包的三种方式

  • 直接在控制台进行启动,缺点就是控制台关闭项目也就关闭了。

    java -jar xxx.jar
    
  • 可以运行在后台,但是如果退出了shell的话,启动的项目会停止。

    java -jar /xxx.jar > logfilename.file 2>&1 &
    
  • 加上nohup的话,即使退出shell,也不影响。

    nohup java -jar /bootdo-2.0.0.jar > bootdolog.file 2>&1 &
    
  • 上面命令的解释:
    (1)、nohup 表示永久运行。
    (2)、& 表示后台运行 。
    (3)、> 代表重定向到哪里。
    (4)、1 表示stdout标准输出,系统默认值是1。所以">/dev/null"等同于"1>/dev/null"
    (5)、2 表示stderr标准错误,nohup ./mqnamesrv >/home/mqnamesrv.out 2>&1 & 表示标准输出到mqnamesrv.out中,接着,标准错误输出重定向等同于标准输出,输出到同一文件中。

三、项目启动与停止操作第一种方式(java -jar命令方式)

1、在idea开发工具中将项目打jar包(lz打了三个jar包),并上传到linux环境的/usr/local/jar/目录下
在这里插入图片描述

2、进入/usr/local/jar/目录。
在这里插入图片描述

3、启动jar包

nohup java -jar xxx1.jar > logFileName1.file 2>&1 &
nohup java -jar xxx2.jar > logFileName2.file 2>&1 &
nohup java -jar xxx3.jar > logFileName3.file 2>&1 &

4、停止jar包

(1)、查询xxx1到进程号,再通过kill -s 9 ${pid} 进行杀死再重新启动

[root@CentOS-1 jar]# ps -ef | grep xxx1
root     2990078 2988309 10 10:08 pts/0    00:00:51 java -jar xxx1.jar
root     2990522 2988309  0 10:16 pts/0    00:00:00 grep --color=auto xxx1
[root@CentOS-1 jar]# kill -s 9 2990078

(2)、查询xxx2到进程号,再通过kill -s 9 ${pid} 进行杀死再重新启动

[root@CentOS-1 jar]# ps -ef |grep xxx2
root     2990296 2988309 12 10:12 pts/0    00:00:47 java -jar xxx2.jar
root     2990553 2988309  0 10:19 pts/0    00:00:00 grep --color=auto xxx2
[root@CentOS-1 jar]#kill -s 9 2990296

(3)、查询xxx3到进程号,再通过kill -s 9 ${pid} 进行杀死再重新启动

[root@CentOS-1 jar]# ps -ef |grep xxx3
root     2990343 2988309 21 10:13 pts/0    00:01:29 java -jar xxx3.jar
root     2990563 2988309  0 10:20 pts/0    00:00:00 grep --color=auto xxx3
[root@CentOS-1 jar]#kill -s 9 2990343 

四、项目启动与停止操作第二种方式(shell脚本方式)

1、创建xxx1.sh 脚本,编辑内容如下。

#!/bin/bash
#这里可替换为你自己的执行程序,其他代码无需更改
xxx1_NAME=xxx1.jar

#使用说明,用来提示输入参数
usage() {
 echo "Usage: sh xxx1.sh [start|stop|restart|status]"
 exit 1
}
 
#检查程序是否在运行
is_exist(){
 pid=`ps -ef|grep $xxx1_NAME|grep -v grep|awk '{print $2}' `
 #如果不存在返回1,存在返回0 
 if [ -z "${pid}" ]; then
 return 1
 else
 return 0
 fi
}

#启动方法
start(){
 is_exist
 if [ $? -eq "0" ]; then
 echo "${xxx1_NAME} is already running. pid=${pid} ."
 else
 nohup java -jar /usr/local/jar/$xxx1_NAME> /usr/local/jar/log/logFileName1.file 2>&1 &
 echo "${xxx1_NAME} start success"
 fi
}

#停止方法
stop(){
 is_exist
 if [ $? -eq "0" ]; then
 kill -9 $pid
 else
 echo "${xxx1_NAME} is not running"
 fi
}

#输出运行状态
status(){
 is_exist
 if [ $? -eq "0" ]; then
 echo "${xxx1_NAME} is running. Pid is ${pid}"
 else
 echo "${xxx1_NAME} is NOT running."
 fi
}

#重启
restart(){
 stop
 start
}

#根据输入参数,选择执行对应方法,不输入则执行使用说明
case "$1" in
 "start")
 start
 ;;
 "stop")
 stop
 ;;
 "status")
 status
 ;;
 "restart")
 restart
 ;;
 *)
 usage
 ;;
esac

2、以上面的方式继续创建xxx2.sh和xxx3.sh脚本文件,并分别上传到/usr/local/jar/batchCommands/目录下。
在这里插入图片描述
3、启动之前参考此博文https://wwwxz.blog.csdn.net/article/details/115361901,修改下.sh文件的格式

  • 因为脚本在windows下创建编辑然后上传到linux系统的,所以是dos格式的,而linux却是只能执行格式为unix格式的脚本,所以识别不了。

4、修改好格式后,进入/usr/local/jar/batchCommands/目录,启动、停止、重启xxx1.jar

 sh xxx1.sh start
 sh xxx1.sh stop
 sh xxx1.sh restart

5、以上面的方式继续启动、停止、重启xxx2.jar 和xxx3.jar

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐