给大家分享一份关于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 "\033[31m Not running \033[0m" 
		else
			echo -e "\033[32m Running [$appId] \033[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)