继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

Linux编辑启动停止重启springboot jar包脚本

宝慕林4294392
关注TA
已关注
手记 176
粉丝 36
获赞 147

 springboot的配置文件中,配置文件的名字都有各自的意义跟用途

  1. dev 开发环境

  2. prod 生产环境(默认)

  3. test 测试环境

加载指定配置文件 --spring.profiles.active=prod

springboot加载jar包的方式有

// 直接在控制台进行启动,缺点就是控制台关闭项目也就关闭了。java -jar bootdo.jar// 这种方式可以运行在后台,但是如果推出了shell的话,那也会挂java -jar /bootdo-2.0.0.jar  > bootdolog.file 2>&1 &// 加上nohup的话,即使推出shell,也不影响。nohup java -jar /bootdo-2.0.0.jar  > bootdolog.file 2>&1 &

解释

nohup表示永久运行。&表示后台运行

> 代表重定向到哪里

1 表示stdout标准输出,系统默认值是1,所以">/dev/null"等同于"1>/dev/null"
2 表示stderr标准错误

nohup ./mqnamesrv >/home/cxb/mqnamesrv.out 2>&1 & 即标准输出到mqnamesrv.out中,接着,标准错误输出重定向等同于标准输出,输出到同一文件中。

 

在服务器上通过如下方式启动成功之后,如果涉及到重新启动,那么你需要通过ps -ef | grep bootdo 查询到进程号,再通过kill -s 9 ${pid} 进行杀死再重新启动,很是麻烦。

nohup java -jar /bootdo-2.0.0.jar  > bootdolog.file 2>&1 &

一两次还好说,如果涉及到多次,那就有些崩溃了。

这样,可以通过编写一个shell脚本来进行启动(start)停止(stop)重启(restart)操作,一步到位,方便高效

 

在自定义目录创建 wss.sh 脚本,编辑内容如下。

复制代码

 1 #!/bin/bash 2 #这里可替换为你自己的执行程序,其他代码无需更改 3 APP_NAME=websocketserver-0.0.1-SNAPSHOT.jar 4   5 #使用说明,用来提示输入参数 6 usage() { 7     echo "Usage: sh 脚本名.sh [start|stop|restart|status]" 8     exit 1 9 }10  11 #检查程序是否在运行12 is_exist(){13   pid=`ps -ef|grep $APP_NAME|grep -v grep|awk '{print $2}' `14   #如果不存在返回1,存在返回0     15   if [ -z "${pid}" ]; then16    return 117   else18     return 019   fi20 }21  22 #启动方法23 start(){24   is_exist25   if [ $? -eq "0" ]; then26     echo "${APP_NAME} is already running. pid=${pid} ."27   else28     nohup java -jar /mnt/ssd1/project/websocket/$APP_NAME > /mnt/ssd1/project/websocket/websocketserverlog.file 2>&1 &29     echo "${APP_NAME} start success"30   fi31 }32  33 #停止方法34 stop(){35   is_exist36   if [ $? -eq "0" ]; then37     kill -9 $pid38   else39     echo "${APP_NAME} is not running"40   fi  
41 }42  43 #输出运行状态44 status(){45   is_exist46   if [ $? -eq "0" ]; then47     echo "${APP_NAME} is running. Pid is ${pid}"48   else49     echo "${APP_NAME} is NOT running."50   fi51 }52  53 #重启54 restart(){55   stop56   start57 }58  59 #根据输入参数,选择执行对应方法,不输入则执行使用说明60 case "$1" in61   "start")62     start63     ;;64   "stop")65     stop66     ;;67   "status")68     status69     ;;70   "restart")71     restart72     ;;73   *)74     usage75     ;;76 esac

复制代码

 

在标红接头行配置启动命令。

之后就可以通过 wss.sh start | stop | restart 实现启动,停止,重启操作了。

 

补充下

sh xxx.sh与./xxx.sh区别

sh xxx.sh 是不需要有执行权限

./xxx.sh 是需要有执行权限的,可以通过 chmod +x xxx.sh 赋予权限

作者:陈灬大灬海

原文出处:https://www.cnblogs.com/c-h-y/p/10460061.html  

打开App,阅读手记
1人推荐
发表评论
随时随地看视频慕课网APP