• Linux java jar启停脚本


    这两个脚本主要用于管理Java应用程序的启停状态,方便快捷。

    启用脚本

    这段代码是一个shell脚本,它的目的是启动一个Java应用程序并检查其启动状态。

    # 项目所在目录
    PROJECT_OPTS=/opt/test
    
    # 日志位置
    LOG_OPTS=/opt/test/logs/log_info.log
    
    # 启动程序
    echo "$(date "+%Y-%m-%d %H:%M:%S") 开始启动 ........."  # 输出当前时间并显示开始启动的信息
    nohup java -Djava.io.tmpdir=$PROJECT_OPTS/temp -jar $PROJECT_OPTS/test.jar >nohup.log 2>&1 &  # 使用nohup启动java程序,并将输出重定向到nohup.log文件中,2>&1表示将标准错误输出也重定向到标准输出
    
    # 查询日志检测java程序是否启动成功
    sleep 1s  # 等待1秒,给java程序一些启动时间
    while [ -f $LOG_OPTS ]  # 当日志文件存在时
    do
     current=`date +%Y-%m-%d\ %H:%M`  # 获取当前时间
     result=`grep "$current" $LOG_OPTS | grep "Started"`  # 在日志文件中查找包含当前时间和"Started"的关键字
     if [[ "$result" != "" ]]  # 如果找到了这样的关键字
     then
     echo "$(date "+%Y-%m-%d %H:%M:%S") 启动成功 ........."  # 输出当前时间并显示启动成功的信息
     break  # 结束循环
     else
     echo "$(date "+%Y-%m-%d %H:%M:%S") 正在启动,请稍等..."  # 输出当前时间并显示正在启动的信息
     sleep 5s  # 等待5秒,然后再次检查日志文件
     fi
    done
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25

    这段脚本使用了一个while循环来检查日志文件,直到找到表示程序已经成功启动的关键词为止。在每次循环中,它都会输出当前的时间和状态信息,以便于监控程序的启动过程。

    停用脚本

    # 项目jar包所在目录
    PROJECT_OPTS=/opt/test.jar
    
    # 输出当前时间并显示查看$PROJECT_OPTS进程pid的信息
    echo "$(date "+%Y-%m-%d %H:%M:%S") 查看$PROJECT_OPTS进程pid......"
    
    # 使用ps命令查找含有$PROJECT_OPTS关键字的进程,排除掉grep和stop命令的进程,使用awk命令提取进程ID
    ID=`ps -ef | grep "$PROJECT_OPTS" | grep -v "grep" | grep -v stop| awk '{print $2}'`
    
    # 输出当前时间并显示停止$PROJECT_OPTS进程pid为$ID的信息
    echo "$(date "+%Y-%m-%d %H:%M:%S") 停止$PROJECT_OPTS进程pid为$ID...."
    
    # 使用kill命令停止进程ID为$ID的进程
    kill $ID
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    这段代码的目的是查找并停止运行在系统中的某个指定jar包的进程。首先,它确定了项目jar包所在目录。然后,它使用ps -ef命令查找所有正在运行的进程,并通过grep过滤出包含项目jar包路径的进程。同时,它排除了使用grep命令本身的进程和名为stop的进程。最后,使用awk提取出这些进程的ID,并使用kill命令停止这些进程。

  • 相关阅读:
    【概率与统计】聊聊一些常见的概率分布
    CSS总结第六天
    项目中出现Spring和SpringMVC时,如何进行配置?
    子集(c++题解)
    【三维重建】相移法+格雷码
    folly::ConcurrentSkipList 详解
    Java实现递归查询树结构
    猿创征文|Java-String、StringBuffer、StringBuilder详解
    数据类型【MySQL】
    【ML特征工程】第 6 章 :降维:用 PCA 压缩数据薄饼
  • 原文地址:https://blog.csdn.net/qq_39839745/article/details/133989494