zoukankan      html  css  js  c++  java
  • 记录一次shell脚本的使用

    此文章适合刚入门的小白,通俗易懂。大神就不用看了。哈哈。。。

    大家在使用自动化部署jenkins时,一个按钮即完成了部署。但是很多小白应该还不清楚这下按钮具体做了哪些操作。

    因为此篇文章主要讲的是shell脚本,jenkins部分就简单来说了。按下jenkins构建按钮,大概的操作流程为:编译打包—>发送到指定服务器—>执行shell脚本。

    我们先看一个shell脚本的例子。

    APP_NAME=lbccrm.jar
    
    P_ID=`ps -ef | grep java | grep $APP_NAME|awk '{print $2}'`;
    
    echo "########$SERVICE_NAME process pid is:$P_ID########"
    if [ "$P_ID" == "" ]; then
            echo "########$SERVICE_NAME process not exists or stop success########"
    else
            echo "########begin kill $SERVICE_NAME process, pid is:$P_ID########"
        kill -9 $P_ID
    fi
    
    sleep 2
    current_dir=$(cd `dirname $0`; pwd)
    echo "########current_dir is:$current_dir########"
    nohup /data/opt/jdk1.8.0_181/bin/java -jar $current_dir/$APP_NAME > $current_dir/lbccrmlog.file   2>&1 &
    echo "########$APP_NAME is success########"

    那么这个脚本具体都做了什么事呢。有些代码功底,就算没学过shell脚本的人应该也能看懂一大半。下面我就简单的来说一下,其实非常简单。

    APP_NAME=lbccrm.jar 定义变量
    P_ID=`ps -ef | grep java | grep $APP_NAME|awk '{print $2}'`; 获取我们应用程序的pid
    echo命令就是输出文本
    if [ "$P_ID" == "" ]; then
            echo "########$SERVICE_NAME process not exists or stop success########"
    else
            echo "########begin kill $SERVICE_NAME process, pid is:$P_ID########"
        kill -9 $P_ID
    fi
    意思就是查到P_ID后杀死该程序
    current_dir=$(cd `dirname $0`; pwd)获取当前目录
    nohup /data/opt/jdk1.8.0_181/bin/java -jar $current_dir/$APP_NAME > $current_dir/lbccrmlog.file   2>&1 &  重新启动程序
     
     
  • 相关阅读:
    暑假集训(2)第六弹 ----- Frosh Week(UVA11858)
    暑假集训(2)第五弹 ----- Who's in the Middle(poj2388)
    暑假集训(2)第四弹 ----- 敌兵布阵(hdu1166)
    暑假集训(2)第三弹 ----- 食物链(poj1182)
    排序算法
    设计模式
    字符串匹配之KMP实现
    栈的链表简易实现
    单链表简单实现
    EF使用Effort.EF内存数据库单元测试和集成测试
  • 原文地址:https://www.cnblogs.com/feiyangbahu/p/12486401.html
Copyright © 2011-2022 走看看