[Linux ] 详细的Linux环境下 使用脚本sh运行jar包项目

运维小知识:

下面这是我平时运行jar包的指令   小于号>log 的含义是重定向一个日志!  打印对应jar包信息的

nohup java -jar -Dserver.port=0000 demo-0.0.1-SNAPSHOT.jar >log8888.log 

一般都是同级目录:

多掌握一个脚本去运行jar包的方法:  这也是看的别人博主的! 感谢!

首先脚本的名称为:  auto_deploy.sh

这是源码:

#!/bin/bash
# 定义变量
# 要运行的jar包路径,加不加引号都行。 注意:等号两边 不能 有空格,否则会提示command找不到
JAR_NAME="/opt/cdApp/demo-0.0.1-SNAPSHOT.jar"
# 日志路径,加不加引号都行。 注意:等号两边 不能 有空格,否则会提示command找不到
LOG_PATh=/opt/cdApp/log8888.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 "........................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 | 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
}
 
# 重启方法
restart() {
	echo ""
	echo ".............................Restarting.............................."
	echo "....................................................................."
		# 重新获取一下pid,因为其它操作如start会导致pid的状态更新
	pid=`ps -ef | grep $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

使用方法:

注意:   这里你只需要修改 JAR_NAME(linux服务器上面的  包路径) , 还有LOG_PATH(需要存放日志的路径)     

然后 配置好这二个路径问题以后呢, 文件后缀为  sh

直接使用我这个文件 名称就行了 :  auto_deploy.sh

上传到linux 服务器以后, 你需要使用 vi   auto_deploy.sh   进入这个文件的内部;

然后使用   ESC 或者 使用输入法弄为大写 冒号+set ff  去查看对应文件的格式!!

因为在windows 系统修改的文件 它默认格式为  doc!!!

使用 :set ff unix 去修改文件格式  然后使用   :set ff  查看格式     wq强制保存退出

:set ff=unix 表示设置文件格式是unix格式

: set ff unix

使用 :set ff 去查看文件格式    也可以 :set fileformat 查看文件格式 或者 :set fileformat=doc / unix  或者 :set ff=unix / doc 

 

在服务器运行脚本情况:

 非运行截图:

sh auto_deploy.sh

sh auto_deploy.sh stop

sh auto_deploy.sh status

 服务启动状态下截图:

sh auto_deploy.sh start

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

sh auto_deploy.sh status   查看运行状态:

sh auto_deploy.sh restart 重启指令

sh auto_deploy.sh stop 停止指令

谢谢博主  https://blog.csdn.net/bingxuesiyang/article/details/88531613

  • 1
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

是汤圆丫

怎么 给1分?

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值