美文网首页
shell编程中之 nohup 必须手动 CTRL + C 退出

shell编程中之 nohup 必须手动 CTRL + C 退出

作者: liurongming | 来源:发表于2021-08-10 10:28 被阅读0次

deploy() 函数中, [ ! -f ${UP_JARFILE} ] 与 nohup java -server 拆成两行 问题解决。

#!/bin/bash

# 当前时间
CUR_TIME=$(date "+%Y%m%d_%H%M%S")
# 源码编译目录(含dist)
DIST_DIR="$WORKSPACE"
DIR_TMP="$WORKSPACE_TMP"

#DIST_DIR="/var/lib/jenkins/workspace/xxx-cloud"
#DIR_TMP="/var/lib/jenkins/workspace/xxx-cloud@tmp"
# 部署服务器地址
UP_SVR_IP="192.168.5.175"
# 部署目录
UP_DIR="/opt/xxx"
# 上传jar文件a
UP_JARFILE="xxx-system-1.0.1.jar"

# 内存参数
MEM_OPTS="-Xms512m -Xmx512m -Xss1024K -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=512m"
#Encoding
ENCODING_PARAM="-Dfile.encoding=UTF-8"

# 删除并备份
bakfile(){
        # 提示
        echo "$UP_JARFILE 正在备份中..."

        # 登录
        ssh -Tq -o 'StrictHostKeyChecking=no' root@${UP_SVR_IP} << EOFBAK
        # 判断目录
        if [ ! -d $UP_DIR ];then
                echo "${UP_DIR} is  not exist"
                mkdir -p ${UP_DIR}
                exit 1
        fi
        # 判断文件
        cd $UP_DIR
        if [ ! -f ${UP_JARFILE} ];then
                echo "${UP_JARFILE} is not exist"
                exit 2
        fi

        # 备份
        tar -czf ${UP_JARFILE}.${CUR_TIME}.tar.gz *.jar

        # 删除
        ls -lt |grep $UP_JARFILE |grep -v tar.gz |awk 'NR>1 {print \$NF}' | xargs rm -rf

        # 保留10个版本
        ls -lt |grep ${UP_JARFILE}  |grep tar.gz |awk 'NR>10 {print \$NF}' |xargs rm -rf

        # 提示
        echo "$UP_JARFILE 备份已完成!"
EOFBAK
}


# 传输编译文件
upfile(){
        # 删除临时文件
        cd $DIR_TMP && ls -l |grep jar |awk '{print $NF}' |xargs rm -rf

        # 拷贝到临时目录
        find ${DIST_DIR} -name '*.jar' |grep -vE 'xxx-common|xxx-api' |xargs -i cp {} ${DIR_TMP}

        # 传指定服务器
        cd ${DIR_TMP} && echo "${UP_JARFILE} 正在等待上传,请稍后..."
        [ -f ${UP_JARFILE} ] && scp -o StrictHostKeyChecking=no  ${DIR_TMP}/${UP_JARFILE}  root@${UP_SVR_IP}:${UP_DIR} &>/dev/null

        # 检查
        [ $? -eq 0 ] && echo "${UP_JARFILE} 已上传成功!"
}


# 部署
deploy() {
        # 登录
        ssh -Tq -o 'StrictHostKeyChecking=no' root@${UP_SVR_IP} << EOFSSH
        cd $UP_DIR

        # 查杀进程
        ps -ef | grep ${UP_JARFILE} | grep -v grep | awk -F ' ' '{print \$2}' |xargs -r kill -9
        if [ $? -eq 0 ]; then
                        echo "${UP_JARFILE} 已杀成功!"
                else
                        echo "${UP_JARFILE} kill失败!"
        fi

        # 发布
        [ ! -f ${UP_JARFILE} ] && echo "failure: ${UP_JARFILE} 包不存在,请检查上传情况!" && exit 1
        nohup java -server $MEM_OPTS $ENCODING_PARAM -jar ${UP_DIR}/${UP_JARFILE} --spring.profiles.active=sit >/dev/null 2>&1 &
        if [ $? -eq 0 ]; then
                        echo "${UP_JARFILE} 已发布成功!"
                else
                        echo "${UP_JARFILE} 发布失败!"
        fi
        exit 0
EOFSSH
}

相关文章

  • shell编程中之 nohup 必须手动 CTRL + C 退出

    deploy() 函数中, [ ! -f ${UP_JARFILE} ] 与 nohup java -serve...

  • Linux基础命令

    tab 键用来补全代码。 Ctrl+c 强行退出终端 shell 通配符 在 Linux 环境中,如果遇到困难,可...

  • centos7下springboot jar包的启动与停止

    1.运行jar包(不挂断运行,终端关闭/ctrl+c/账户退出,jar包不停止运行) nohup java -ja...

  • 杀死指定进程

    在Mac下调试,启动server后想关闭,如果仅仅是Ctrl + Z或者Ctrl + C,在不退出当前shell的...

  • hbase基本命令

    1、进入hbase的shell hbase提供了一个shell的终端给用户交互 退出使用quit或者ctrl+c需...

  • linux常用命令

    1.前后台进程相关命令 Ctrl+C:终止并退出前台命令的执行,回到SHELL Ctrl+Z:暂停前台命令的执行,...

  • day2总结-Python中的基本语法

    一 编程中的快捷键 ctrl+s - 保存ctrl+c - 复制Ctrl+v - 粘贴ctrl+f - 搜索C...

  • Hbase基本命令及操作

    hbase提供了一个shell的终端 退出使用quit或者ctrl+c即可。注:需要关闭hadoop的安全模式不然...

  • ubuntu终端下的指令

    ctrl + l - 清屏 。 cLear ctrl + c - 终止命令。 ctrl + d - 退出 shel...

  • Hbase命令

    hbase提供了一个shell的终端给用户交互 退出使用quit或者ctrl+c即可。注:需要关闭hadoop的安...

网友评论

      本文标题:shell编程中之 nohup 必须手动 CTRL + C 退出

      本文链接:https://www.haomeiwen.com/subject/sksxbltx.html