前提:本例中是基于 java->jar与lib 依赖分离,且处于同级目录,如果不是,可以自己修改配置文件(nohup java -jar xxx.jar)
maven打包配置jar与lib依赖分离
运行实例:
执行命令:
# sh start.sh [start|stop|restart|status|debug] [version] || [ADD_PORT]
# ADD_PORT为debug调试模式时用,默认监听端口为51135
启动程序: sh start.sh start test-1.x.x
debug启动: sh start.sh debug test-1.x.x | sh start.sh debug test-1.x.x 51235
重启程序: sh start.sh restart test-1.x.x
查看运行状态: sh start.sh status test-1.x.x
关闭程序: sh start.sh stop test-1.x.x
获取使用教程: sh start.sh -h
[root@demo demos]# ls
start.sh lib test-1.0.jar
[root@demo demos]# sh start.sh start test-1.0
Service test-1.0.jar is starting!pid=17827
.................Start success.................
[root@demo demos]# sh start.sh status test-1.0
Service test-1.0.jar is running. It's pid=17827
[root@demo demos]# sh start.sh restart test-1.0
.................Restarting.................
Service test-1.0.jar is starting!pid=19134
.................Start success.................
.................Restart success.................
[root@demo demos]# sh start.sh stop test-1.0
Service stop success!pid:19134 which has been killed forcibly!
start.sh脚本
#!/bin/sh
# 定义变量
JAR_NAME="$2.jar"
# 监听端口
ADD_PORT="$3"
# help获取使用方法
help() {
echo ""
echo "please use command: sh start.sh [start|stop|restart|status|debug] [version] || [ADD_PORT]"
echo "For example: sh start.sh start 1.0.1"
echo "debug For example: sh start.sh debug demo1.0 | sh start.sh debug demo1.0 6156"
echo ""
exit 1
}
# 该方法会重新启动程序
debug() {
# 查看pid,先杀掉,再运行jar
pid=$(ps -ef | grep $JAR_NAME | grep -v grep | awk '{print $2}')
# 设置