博客
关于我
Linux shell脚本启动springboot项目
阅读量:372 次
发布时间:2019-03-04

本文共 2816 字,大约阅读时间需要 9 分钟。

Java程序管理脚本使用说明

前提说明

  • 依赖管理:请确保jarlib文件处于同一目录下,如果不满足,请自行修改配置文件。
  • 运行环境:使用sh start.sh命令运行脚本,支持以下操作:startstoprestartstatusdebug

常用命令示例

1. 启动程序

sh start.sh start test-1.x.x
  • 描述:启动指定版本的服务,输出启动日志。

2. 重启程序

sh start.sh restart test-1.x.x
  • 描述:停止当前运行的服务程序并重新启动。

3. 查看运行状态

sh start.sh status test-1.x.x
  • 描述:显示服务的运行状态及对应的进程ID。

4. 调试模式启动

sh start.sh debug test-1.x.x 51235
  • 描述:以调试模式启动服务,默认监听端口为51135。
  • 注意:调试模式下会自动关闭当前运行的服务进程。

5. 关闭程序

sh start.sh stop test-1.x.x
  • 描述:立即停止运行的服务程序。

start.sh脚本详解

1. 脚本结构

#!/bin/sh
  • 说明:脚本执行环境为/bin/sh,适用于Linux系统。

2. 变量定义

JAR_NAME="$2.jar"ADD_PORT="$3"
  • 说明:JAR_NAME表示程序文件名,ADD_PORT表示调试模式下的监听端口。

3. 功能模块

1. 帮助信息

help() {    echo "请使用以下命令:sh start.sh [start|stop|restart|status|debug] [版本号] || [ADD_PORT]"    echo "示例:sh start.sh start 1.0.1"    echo "调试模式示例:sh start.sh debug demo1.0 | sh start.sh debug demo1.0 6156"}
  • 说明:输出使用说明,支持版本号和调试端口参数。

2. 启动程序

start() {    pid=$(ps -ef | grep $JAR_NAME | grep -v grep | awk '{print $2}')    if [ -z $pid ]; then        nohup java -Dloader.path=lib/ -jar $JAR_NAME > out.log 2>&1 &        pid=$(ps -ef | grep $JAR_NAME | grep -v grep | awk '{print $2}')        echo "Service ${JAR_NAME} is starting!pid:${pid}"    else        echo "服务已运行,进程ID为${pid}。请使用stop或restart命令重新获取服务。"    fi}
  • 说明:检查当前进程,若未运行则启动服务,返回启动日志。

3. 停止程序

stop() {    pid=$(ps -ef | grep $JAR_NAME | grep -v grep | awk '{print $2}')    if [ -z $pid ]; then        echo "服务未找到,无法停止。"    else        kill -9 $pid        echo "服务停止成功,进程ID:${pid}。"    fi}
  • 说明:查找进程,若存在则强制终止,输出停止日志。

4. 查看状态

status() {    pid=$(ps -ef | grep $JAR_NAME | grep -v grep | awk '{print $2}')    if [ -z $pid ]; then        echo "服务未运行。"    else        echo "服务运行中,进程ID:${pid}。"    fi}
  • 说明:查询进程状态,返回服务运行信息。

5. 重启程序

restart() {    echo "重启程序中..."    pid=$(ps -ef | grep $JAR_NAME | grep -v grep | awk '{print $2}')    if [ ! -z $pid ]; then        kill -9 $pid    fi    start}
  • 说明:终止当前进程后调用start函数,重新启动服务。

6. 调试模式启动

debug() {    if [ -z $ADD_PORT ]; then        ADD_PORT="51135"        echo "默认监听端口为:${ADD_PORT}"    fi    pid=$(ps -ef | grep $JAR_NAME | grep -v grep | awk '{print $2}')    if [ ! -z $pid ]; then        kill -9 $pid    fi    nohup java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=$ADD_PORT -Dloader.path=lib/ -jar $JAR_NAME > debugOut.log 2>&1 &    pid=$(ps -ef | grep $JAR_NAME | grep -v grep | awk '{print $2}')    echo "调试模式启动成功,进程ID:${pid},端口:${ADD_PORT}"}
  • 说明:启动调试模式服务,支持自定义端口,默认为51135。首先终止当前进程,然后重新运行程序。

使用示例

1. 启动服务

sh start.sh start test-1.0.1
  • 输出:Service test-1.0.jar is starting!pid=17827

2. 调试模式启动

sh start.sh debug test-1.0.1 51235
  • 输出:debug Service test-1.0.jar is starting!pid=19134,地址:51235

3. 查看运行状态

sh start.sh status test-1.0.1
  • 输出:Service test-1.0.jar is running. It's pid=19134

注意事项

  • 依赖管理:请确保jarlib文件位于同一目录下。
  • 调试模式:在调试模式下,程序会自动关闭当前运行的服务进程。
  • 进程管理:脚本会自动处理进程终止和重启操作。

如有问题,请参考详细日志文件或联系技术支持。

转载地址:http://aakg.baihongyu.com/

你可能感兴趣的文章
Objective-C实现natural sort自然排序算法(附完整源码)
查看>>
Objective-C实现nested brackets嵌套括号算法(附完整源码)
查看>>
Objective-C实现nevilles method多项式插值算法(附完整源码)
查看>>
Objective-C实现newtons second law of motion牛顿第二运动定律算法(附完整源码)
查看>>
Objective-C实现newton_raphson牛顿拉夫森算法(附完整源码)
查看>>
Objective-C实现NLP中文分词(附完整源码)
查看>>
Objective-C实现NLP中文分词(附完整源码)
查看>>
Objective-C实现not gate非门算法(附完整源码)
查看>>
Objective-C实现number of digits解字符数算法(附完整源码)
查看>>
Objective-C实现NumberOfIslands岛屿的个数算法(附完整源码)
查看>>
Objective-C实现numerical integration数值积分算法(附完整源码)
查看>>
Objective-C实现n皇后问题算法(附完整源码)
查看>>
Objective-C实现O(E + V) 中找到 0-1-graph 中的最短路径算法(附完整源码)
查看>>
Objective-C实现OCR文字识别(附完整源码)
查看>>
Objective-C实现odd even sort奇偶排序算法(附完整源码)
查看>>
Objective-C实现ohms law欧姆定律算法(附完整源码)
查看>>
Objective-C实现P-Series algorithm算法(附完整源码)
查看>>
Objective-C实现page rank算法(附完整源码)
查看>>
Objective-C实现PageRank算法(附完整源码)
查看>>
Objective-C实现pancake sort煎饼排序算法(附完整源码)
查看>>