开发者

Linux脚本启动jar包方式

目录
  • 一:脚本auto_deploy.sh
  • 二:更改脚本格式
    • 第一步
    • 第二步
    • 第三步
  • 三:脚本运行截图
    • 服务非启动状态下截图
    • 服务启动状态下截图
  • 总结

    注意:

    以下脚本笔者是在Windows上编辑的,因此默认格式是DOS。

    如果在linux上使用,请使用vi命令编该文件,改为Unix格式。

    笔者使用的SpringBoot + JSP 因此使用的是war包,如果你使用的是jar包,在文中用到war的地方改成jar就行。

    一:脚本auto_deploy.sh

    使用该脚本只需要修改JAR_NAME(改成自己的)、LOG_PATH(改成自己的)、脚本格式(改成Unix格式)这三点就行了。

    #!/bin/bash
    # 定义变量
    # 要运行的jar包路径,加不加引号都行。 注意:等号两边 不能 有空格,否则会提示command找不到
    JAR_NAME="/xxx/xxx/xxx/xxx.war"
    # 日志路径,加不加引号都行。 注意:等号两边 不能 有空格,否则会提示command找不到
    LOG_PATh=/export/Logs/main.log
     
     
    # 如果输入格式不对,给出提示!
    tips() {
    	echo ""
    	echo "WARNING!!!......Tips, please use command: sh auto_deploy.sh [start|stop|restart|status].   For example: sh auto_deploy.sh start  "
    	echo ""
    	exit 1
    }
     
     
    # 启动方法
    start() {
            # 重新获取一下pid,因为其它操作如stop会导致pid的状态更新
    	pid=`ps -ef | grep $JAR_NAME | grep -v grep | awk '{print $2}'`
            # -z 表示如果$pid为空时执行
    	if [ -z $pid ]; then
            nohup Java -jar $JAR_NAME > /dev/null 2>&1 &
            pid=`ps -ef | grep $JAR_NAME | grep -v grep | awk '{print $2}'`
    		echo ""
            echo "Service ${JAR_NAME} is starting!pid=${pid}"
    		echo ".....android...................Here is the log.............................."
    		echo "....................................................................."
            tail -f $LOG_PATh
    		echo "........................Start successfully!........................."
    	else
    		echo ""
    		echo "Service ${JAR_NAME} is already running,it's pid = ${pid}. If necessary, please use command: sh auto_deploy.sh restart."
    		echo ""
    	fi
    }
     
    # 停止方法
    stop() {
    		# 重新获取一下pid,因为其它操作如start会导致pid的状态更新
    	pid=`ps -ef | grep $JAR_NAME | grep -v grep javascript| awk '{print $2}'`
            # -z 表示如果$pid为空时执行。 注意:每个命令和变量之间一定要前后加空格,否则会提示command找不到
    	if [ -z $pid ]; then
    		echo ""
            echo "Service ${JAR_NAME} is not running! It's not necessary to stop it!"
    		echo ""
    	else
    		kill -9 $pid
    		echo ""
    		echo "Service stop successfully!pid:${pid} which has been killed forcibly!"
    		echo ""
    	fi
    }
     
    # 输出运行状态方法
    status() {
            # 重新获取一下pid,因为其它操作如stop、restart、start等会导致pid的状态更新
    	pid=`ps -ef | grep $JAR_NAME | grep -v grep | awk '{print $2}'`
            # -z 表示如果$pid为空时执行。注意:每个命令和变量之间一定要前后加空格,否则会提示command找不到
    	if [ -z $pid ];then
    		echo ""
            echo "Service ${JAR_NAME} is not running!"
    		echo ""
    	else
    		echo ""
            echo "Service ${JAR_NAME} is running. It's pid=${pid}"
    		echo ""
    	fi
    }
     
    http://www.devze.com# 重启方法
    restart() {
    	echo ""
    	echo ".............................Restarting.............................."
    	echo "....................................................................."
    		# 重新获取一下pid,因为其它操作如start会导致pid的状态更新
    	pid=`ps -ef | grhttp://www.devze.comep $JAR_NAME | grep -v grep | awk '{print $2}'`
            # -z 表示如果$pid为空时执行。 注意:每个命令和变量之间一定要前后加空格,否则会提示command找不到
    	if [ ! -z $pid ]; then
    		kill -9 $pid
    	fi
    	start
    	echo "....................Restart successfully!..........................."
    }
     
    # 根据输入参数执行对应方法,不输入则执行tips提示方法
    case "$1" in
       "start")
         start
         ;;
       "stop")
         stop
         ;;
       "status")
         status
         ;;
       "restart")
         restart
         ;;
       *)
         tips
         ;;
    esac

    注意事项:

    • -z 命令表示如果$pid为空时执行。 注意:每个命令和变量之间一定要前后加空格,否则会提示command找不到 
    •  要运行的jar包路径,加不加引号都行。 注意:等号两边 不能 有空格,否则会提示command找不到

    二:更改脚本格式

    注意:以下脚本笔者是在Windows上编辑的,因此默认格式是dos。

    如果在Linux上使用,请使用vi命令编该文件,改为Unix格式。

    第一步

    上传脚本文件到Linux系统后,使用vi命令编辑该脚本文件:

    vi auto_deploy.sh

    第二步

    在Esc模式下冒号输入命令set ff回车就能看到,该脚本是Windows系统的dos格式

    如下图:

    Linux脚本启动jar包方式

    Linux脚本启动jar包方式

    第三步

    在Esc模式下冒号,输入修改格式命令set ff=linux,然后回车(回车后Linux系统并没有提示),完事后还是在Esc模式下输入写入保存命令:wq。

    :set ff=linux
    :wq

    如下图 

    Linux脚本启动jar包方式

    三:脚本运行截图

    服务非启动状态下截图

    sh auto_deploy.sh

    Linux脚本启动jar包方式

    sh auto_deploy.sh stop

     

    Linux脚本启动jar包方式

    sh auto_deploy.sh status

    Linux脚本启动jar包方式

    服务启动状态下截图

    sh auto_deploy编程客栈.sh start

    Linux脚本启动jar包方式

    再次启动一下试试(此时会有提示:服务已经启动,启动状态下请使用重启命了):

    Linux脚本启动jar包方式

    查看状态(提示正在运行):

    sh auto_deploy.sh status

    Linux脚本启动jar包方式

    重启试试:

    sh auto_deploy.sh restart

    Linux脚本启动jar包方式

    停掉服务试试:

    sh auto_deploy.sh stop

    Linux脚本启动jar包方式

    再次输入stop命令(给出提示:服务没有运行,没必要停止!):

    Linux脚本启动jar包方式

    总结

    以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程客栈(www.devze.com)。

    0

    上一篇:

    下一篇:

    精彩评论

    暂无评论...
    验证码 换一张
    取 消

    最新运维

    运维排行榜