zoukankan      html  css  js  c++  java
  • Spring Boot项目sheel脚本(启动、停止、重启、状态)

    给大家分享一份关于jar包项目的sheel脚本文件,启动、停止、重启以及查看状态。 我觉得这个脚本写得很不错,直接把jar包上传到服务器,然后把脚本上传到同一目录下。

    file

    1. 启动方法:app.sh start 会自动生成catalina.log(文件名称可以自行修改脚本) 文件可供查阅日志
    2. 查阅实时日志方法:tail -f catalina.log
    3. 停止方法:app.sh stop 会杀掉当前目录下的服务进程
    4. 重启方法:app.restart 平滑重启服务
    5. 查询状态:app.status
      ps:app.sh(是文件名,可以自行修改。)

    app.sh代码如下:

    	 
    	#!/bin/bash
    	## blog:www.cnbuilder.cn
    	## create 2019-04-30
    	version="5.2.1";
    
    	appName=$2
    	if [ -z $appName ];then
    		appName=`ls -t |grep .jar$ |head -n1`
    	fi
    
    	## 后台启动项目 自动生成 catalina.log日志文件
    	function start()
    	{
    		count=`ps -ef |grep java|grep $appName|wc -l`
    		if [ $count != 0 ];then
    			echo "Maybe $appName is running, please check it..."
    		else
    			echo "The $appName is starting..."
    			nohup java -jar ./$appName -XX:+UseG1GC -XX:+HeapDumpOnOutOfMemoryError -Xms512M -Xmx4G > catalina.log 2>&1 &
    		fi
    	}
    	## 停止项目
    	function stop()
    	{
    		appId=`ps -ef |grep java|grep $appName|awk '{print $2}'`
    		if [ -z $appId ];then
    			echo "Maybe $appName not running, please check it..."
    		else
    			echo "The $appName is stopping..."
    			kill $appId
    		fi
    	}
    	##重启项目(平滑启动)
    	function restart()
    	{
    		# get release version
    		releaseApp=`ls -t |grep .jar$ |head -n1`
    
    		# get last version 
    		lastVersionApp=`ls -t |grep .jar$ |head -n2 |tail -n1`
    
    		appName=$lastVersionApp
    		stop
    		for i in {5..1}
    		do
    			echo -n "$i "
    			sleep 1
    		done
    		echo 0
    
    		backup
    
    		appName=$releaseApp
    		start
    	}
    
    	function backup() 
    	{
    		# get backup version
    		backupApp=`ls |grep -wv $releaseApp$ |grep .jar$`
    
    		# create backup dir
    		if [ ! -d "backup" ];then
    			mkdir backup
    		fi
    
    		# backup
    		for i in ${backupApp[@]}
    		do
    			echo "backup" $i
    			mv $i backup
    		done
    	}
    
    	## 查看项目当前状态 
    	function status()
    	{
    		appId=`ps -ef |grep java|grep $appName|awk '{print $2}'`
    		if [ -z $appId ] 
    		then
    			echo -e "33[31m Not running 33[0m" 
    		else
    			echo -e "33[32m Running [$appId] 33[0m" 
    		fi
    	}
    
    
    	function usage()
    	{
    		echo "Usage: $0 {start|stop|restart|status|stop -f}"
    		echo "Example: $0 start"
    		exit 1
    	}
    
    	case $1 in
    		start)
    		start;;
    
    		stop)
    		stop;;
    
    		restart)
    		restart;;
    
    		status)
    		status;;
    
    		*)
    		usage;;
    	esac
    

    有什么问题可以联系一下我。

    鼓励作者写出更好的技术文档,就请我喝一瓶哇哈哈哈哈哈哈哈。。你们的赞助决定我更新的速度哦!

    提前祝大家五一劳动节快乐。

    微信:

    支付宝:


    感谢一路支持我的人。。。。。
    
    Love me and hold me
    QQ:69673804(16年老号)
    EMAIL:itw@tom.com
    友链交换
    如果有兴趣和本博客交换友链的话,请按照下面的格式在评论区进行评论,我会尽快添加上你的链接。
    

    网站名称:KingYiFan’S Blog
    网站地址:http://blog.cnbuilder.cn
    网站描述:年少是你未醒的梦话,风华是燃烬的彼岸花。
    网站Logo/头像: [头像地址](https://blog.cnbuilder.cn/upload/2018/7/avatar20180720144536200.jpg)
    

    2019

  • 相关阅读:
    phpmyadmin漏洞复现
    ecshop漏洞复现
    php漏洞复现
    discuz漏洞复现
    gitlab漏洞复现
    Elasticsearch漏洞复现
    flask漏洞复现
    Hikari配置
    DOM&BOM的起源,方法,内容,应用
    vue 实现div方框内大图自由拖拽
  • 原文地址:https://www.cnblogs.com/kingyifan/p/11721441.html
Copyright © 2011-2022 走看看