- 一、环境配置(以下是lz的环境配置位置)
- 二、linux环境中springboot加载jar包的三种方式
- 三、项目启动与停止操作第一种方式(java -jar命令方式)
- 四、项目启动与停止操作第二种方式(shell脚本方式)
-
/home/java/目录:jdk1.80安装位置
-
/usr/local/jar/目录:项目jar包位置
-
/usr/local/jar/log/目录:日志文件的位置
-
/usr/local/jar/batchCommands/目录:批处理命令文件
-
直接在控制台进行启动,缺点就是控制台关闭项目也就关闭了。
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中,接着,标准错误输出重定向等同于标准输出,输出到同一文件中。
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