栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Shell脚本启动jar

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Shell脚本启动jar

1.编写脚本xxx.sh

#!/bin/bash
PACKAGE_DIR=/home/program/invoice/
JAR=invoice.jar
APP_NAME="$PACKAGE_DIR$JAR"
PID=0
#加载jps命令防止ssh不能使用jps
source /etc/profile;jps

#检查进程id
checkpid(){
 running=`jps -l | grep $APP_NAME`
 if [ -n "$running" ] ;
 then 
 PID=`echo $running |awk '{print $1}'`
 else
 PID=0
 fi
}
#停止进程
stop(){
  checkpid
  echo -e "stop before checkpid $PID"
  if [ $PID -ne 0 ];
  then
  echo -e "stopping $APP_NAME PID=$PID"
  kill $PID
  else
  echo -e "$APP_NAME not running"
  fi
}
#启动进程
start(){
 checkpid
 echo -e "start before check $PID"
 if [ $PID -ne 0 ];
 then 
 echo -e "warn:$APP_NAME already started! (pid=$PID) "
 else
 echo -e "Starting $APP_NAME "
 nohup java -jar -Dspring.application.name=invoice -Dspring.cloud.config.profile=dev -Xms256m -Xmx256m -Xss256k $APP_NAME  > /dev/null 2>&1 &
 checkpid
 if [ $PID -ne 0 ];
 then 
 echo -e "Started success"
 else
 echo -e "Failed please review logs"
 fi
 fi
}
#备份包
backup(){
 cd $PACKAGE_DIR
 mv "$JAR" "$JAR`(date +%Y%m%d-%H%M%S)`"
}
#重启
restart(){
 stop
 sleep 3s
 start
}

#判断shell执行的命令
if [ ! -n "$1" ];
then 
echo "not input default restart"
 restart
else
 echo "input $1"
 case "$1" in
 'start')
 start
;;
 'stop')
 stop
;;
 'restart')
 restart
;;
 'backup')
 backup
;;
*)
echo "usage :$1 {start|stop|restart}"
exit 1
esac
fi

2.本地重启  

./xxx.sh

3.远程ssh

ssh root@ip  "bash xxx.sh  && exit"

注意问题:

ssh命令后面跟shell的时候,最好用引号括起来,多条命令用&&来逐条执行

不过命令一般需要设置免密登录

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/343553.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号