[monitor]采集器编译打包脚本,启动关闭脚本初始化
This commit is contained in:
44
assembly/collector/assembly.xml
Normal file
44
assembly/collector/assembly.xml
Normal file
@@ -0,0 +1,44 @@
|
||||
<assembly xmlns="http://maven.apache.org/ASSEMBLY/2.0.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/ASSEMBLY/2.0.0 http://maven.apache.org/xsd/assembly-2.0.0.xsd
|
||||
http://maven.apache.org/ASSEMBLY/2.0.0 ">
|
||||
<!--必填,会追加到打包文件名称的末尾-->
|
||||
<id>1.0</id>
|
||||
<!--打包类型,可以设置多种类型,打包的时候不同的类型都会打包打出来-->
|
||||
<formats>
|
||||
<format>tar.gz</format>
|
||||
<format>zip</format>
|
||||
</formats>
|
||||
|
||||
<!--文件相关设置-->
|
||||
<fileSets>
|
||||
<!--bin文件下的所有脚本文件输出到打包后的bin目录下-->
|
||||
<fileSet>
|
||||
<directory>../../assembly/collector/bin</directory>
|
||||
<!-- 是否进行属性替换 即使用 ${project.artifactId} -->
|
||||
<filtered>true</filtered>
|
||||
<outputDirectory>bin</outputDirectory>
|
||||
</fileSet>
|
||||
|
||||
<!-- src/main/resources目录下配置文件打包到config目录下 -->
|
||||
<fileSet>
|
||||
<directory>src/main/resources</directory>
|
||||
<includes>
|
||||
<include>application.yml</include>
|
||||
<include>logback-spring.xml</include>
|
||||
</includes>
|
||||
<!-- 是否进行属性替换 即使用 ${project.artifactId} -->
|
||||
<filtered>true</filtered>
|
||||
<outputDirectory>${file.separator}config</outputDirectory>
|
||||
</fileSet>
|
||||
|
||||
<!-- 将target目录下的启动jar打包到目录下-->
|
||||
<fileSet>
|
||||
<directory>target</directory>
|
||||
<outputDirectory>/</outputDirectory>
|
||||
<includes>
|
||||
<include>*executable.jar</include>
|
||||
</includes>
|
||||
</fileSet>
|
||||
</fileSets>
|
||||
</assembly>
|
||||
18
assembly/collector/bin/shutdown.sh
Normal file
18
assembly/collector/bin/shutdown.sh
Normal file
@@ -0,0 +1,18 @@
|
||||
#!/bin/bash
|
||||
|
||||
# 项目名称
|
||||
APPLICATION="${project.artifactId}"
|
||||
|
||||
# 项目启动jar包名称
|
||||
APPLICATION_JAR="${project.build.finalName}.jar"
|
||||
|
||||
# 通过项目名称查找到PI,然后kill -9 pid
|
||||
PID=$(ps -ef | grep "${APPLICATION_JAR}" | grep -v grep | awk '{ print $2 }')
|
||||
if [[ -z "$PID" ]]
|
||||
then
|
||||
echo ${APPLICATION} is already stopped
|
||||
else
|
||||
echo kill ${PID}
|
||||
kill -9 ${PID}
|
||||
echo ${APPLICATION} stopped successfully
|
||||
fi
|
||||
109
assembly/collector/bin/startup.sh
Normal file
109
assembly/collector/bin/startup.sh
Normal file
@@ -0,0 +1,109 @@
|
||||
#!/bin/bash
|
||||
|
||||
# 项目名称
|
||||
SERVER_NAME="${project.artifactId}"
|
||||
|
||||
# jar名称
|
||||
JAR_NAME="${project.build.finalName}-executable.jar"
|
||||
|
||||
# 进入bin目录
|
||||
cd `dirname $0`
|
||||
# bin目录绝对路径
|
||||
BIN_DIR=`pwd`
|
||||
# 返回到上一级项目根目录路径
|
||||
cd ..
|
||||
# 打印项目根目录绝对路径
|
||||
# `pwd` 执行系统命令并获得结果
|
||||
DEPLOY_DIR=`pwd`
|
||||
|
||||
# 外部配置文件绝对目录,如果是目录需要/结尾,也可以直接指定文件
|
||||
# 如果指定的是目录,spring则会读取目录中的所有配置文件
|
||||
CONF_DIR=$DEPLOY_DIR/config
|
||||
# SERVER_PORT=`sed '/server.port/!d;s/.*=//' config/application.properties | tr -d '\r'`
|
||||
# 获取应用的端口号
|
||||
SERVER_PORT=`sed -nr '/port: [0-9]+/ s/.*port: +([0-9]+).*/\1/p' config/application.yml`
|
||||
|
||||
PIDS=`ps -f | grep java | grep "$CONF_DIR" |awk '{print $2}'`
|
||||
if [ "$1" = "status" ]; then
|
||||
if [ -n "$PIDS" ]; then
|
||||
echo "The $SERVER_NAME is running...!"
|
||||
echo "PID: $PIDS"
|
||||
exit 0
|
||||
else
|
||||
echo "The $SERVER_NAME is stopped"
|
||||
exit 0
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ -n "$PIDS" ]; then
|
||||
echo "ERROR: The $SERVER_NAME already started!"
|
||||
echo "PID: $PIDS"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ -n "$SERVER_PORT" ]; then
|
||||
SERVER_PORT_COUNT=`netstat -tln | grep $SERVER_PORT | wc -l`
|
||||
if [ $SERVER_PORT_COUNT -gt 0 ]; then
|
||||
echo "ERROR: The $SERVER_NAME port $SERVER_PORT already used!"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
# 项目日志输出绝对路径
|
||||
LOGS_DIR=$DEPLOY_DIR/logs
|
||||
# 如果logs文件夹不存在,则创建文件夹
|
||||
if [ ! -d $LOGS_DIR ]; then
|
||||
mkdir $LOGS_DIR
|
||||
fi
|
||||
STDOUT_FILE=$LOGS_DIR/catalina.log
|
||||
|
||||
# JVM Configuration
|
||||
JAVA_OPTS=" -Djava.awt.headless=true -Djava.net.preferIPv4Stack=true "
|
||||
JAVA_DEBUG_OPTS=""
|
||||
if [ "$1" = "debug" ]; then
|
||||
JAVA_DEBUG_OPTS=" -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n "
|
||||
fi
|
||||
|
||||
JAVA_JMX_OPTS=""
|
||||
if [ "$1" = "jmx" ]; then
|
||||
JAVA_JMX_OPTS=" -Dcom.sun.management.jmxremote.port=1099 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false "
|
||||
fi
|
||||
|
||||
JAVA_MEM_OPTS=""
|
||||
BITS=`java -version 2>&1 | grep -i 64-bit`
|
||||
if [ -n "$BITS" ]; then
|
||||
JAVA_MEM_OPTS=" -server -Xmx512m -Xms512m -Xmn256m -XX:PermSize=128m -Xss256k -XX:+DisableExplicitGC -XX:+UseConcMarkSweepGC -XX:+CMSParallelRemarkEnabled -XX:+UseCMSCompactAtFullCollection -XX:LargePageSizeInBytes=128m -XX:+UseFastAccessorMethods -XX:+UseCMSInitiatingOccupancyOnly -XX:CMSInitiatingOccupancyFraction=70 "
|
||||
else
|
||||
JAVA_MEM_OPTS=" -server -Xms512m -Xmx512m -XX:PermSize=128m -XX:SurvivorRatio=2 -XX:+UseParallelGC "
|
||||
fi
|
||||
|
||||
# 加载外部log4j2文件的配置
|
||||
LOG_IMPL_FILE=log4j2.xml
|
||||
LOGGING_CONFIG=""
|
||||
if [ -f "$CONF_DIR/$LOG_IMPL_FILE" ]
|
||||
then
|
||||
LOGGING_CONFIG="-Dlogging.config=$CONF_DIR/$LOG_IMPL_FILE"
|
||||
fi
|
||||
CONFIG_FILES=" -Dlogging.path=$LOGS_DIR $LOGGING_CONFIG -Dspring.config.location=$CONF_DIR/ "
|
||||
echo -e "Starting the $SERVER_NAME ..."
|
||||
nohup java $JAVA_OPTS $JAVA_MEM_OPTS $JAVA_DEBUG_OPTS $JAVA_JMX_OPTS $CONFIG_FILES -jar $DEPLOY_DIR/lib/$JAR_NAME > $STDOUT_FILE 2>&1 &
|
||||
|
||||
COUNT=0
|
||||
while [ $COUNT -lt 1 ]; do
|
||||
echo -e ".\c"
|
||||
sleep 1
|
||||
if [ -n "$SERVER_PORT" ]; then
|
||||
COUNT=`netstat -an | grep $SERVER_PORT | wc -l`
|
||||
else
|
||||
COUNT=`ps -f | grep java | grep "$DEPLOY_DIR" | awk '{print $2}' | wc -l`
|
||||
fi
|
||||
if [ $COUNT -gt 0 ]; then
|
||||
break
|
||||
fi
|
||||
done
|
||||
|
||||
|
||||
echo "OK!"
|
||||
PIDS=`ps -f | grep java | grep "$DEPLOY_DIR" | awk '{print $2}'`
|
||||
echo "PID: $PIDS"
|
||||
echo "STDOUT: $STDOUT_FILE"
|
||||
@@ -0,0 +1,18 @@
|
||||
#!/bin/bash
|
||||
|
||||
# 项目名称
|
||||
APPLICATION="${project.artifactId}"
|
||||
|
||||
# 项目启动jar包名称
|
||||
APPLICATION_JAR="${project.build.finalName}.jar"
|
||||
|
||||
# 通过项目名称查找到PI,然后kill -9 pid
|
||||
PID=$(ps -ef | grep "${APPLICATION_JAR}" | grep -v grep | awk '{ print $2 }')
|
||||
if [[ -z "$PID" ]]
|
||||
then
|
||||
echo ${APPLICATION} is already stopped
|
||||
else
|
||||
echo kill ${PID}
|
||||
kill -9 ${PID}
|
||||
echo ${APPLICATION} stopped successfully
|
||||
fi
|
||||
@@ -0,0 +1,109 @@
|
||||
#!/bin/bash
|
||||
|
||||
# 项目名称
|
||||
SERVER_NAME="${project.artifactId}"
|
||||
|
||||
# jar名称
|
||||
JAR_NAME="${project.build.finalName}.jar"
|
||||
|
||||
# 进入bin目录
|
||||
cd `dirname $0`
|
||||
# bin目录绝对路径
|
||||
BIN_DIR=`pwd`
|
||||
# 返回到上一级项目根目录路径
|
||||
cd ..
|
||||
# 打印项目根目录绝对路径
|
||||
# `pwd` 执行系统命令并获得结果
|
||||
DEPLOY_DIR=`pwd`
|
||||
|
||||
# 外部配置文件绝对目录,如果是目录需要/结尾,也可以直接指定文件
|
||||
# 如果指定的是目录,spring则会读取目录中的所有配置文件
|
||||
CONF_DIR=$DEPLOY_DIR/config
|
||||
# SERVER_PORT=`sed '/server.port/!d;s/.*=//' config/application.properties | tr -d '\r'`
|
||||
# 获取应用的端口号
|
||||
SERVER_PORT=`sed -nr '/port: [0-9]+/ s/.*port: +([0-9]+).*/\1/p' config/application.yml`
|
||||
|
||||
PIDS=`ps -f | grep java | grep "$CONF_DIR" |awk '{print $2}'`
|
||||
if [ "$1" = "status" ]; then
|
||||
if [ -n "$PIDS" ]; then
|
||||
echo "The $SERVER_NAME is running...!"
|
||||
echo "PID: $PIDS"
|
||||
exit 0
|
||||
else
|
||||
echo "The $SERVER_NAME is stopped"
|
||||
exit 0
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ -n "$PIDS" ]; then
|
||||
echo "ERROR: The $SERVER_NAME already started!"
|
||||
echo "PID: $PIDS"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ -n "$SERVER_PORT" ]; then
|
||||
SERVER_PORT_COUNT=`netstat -tln | grep $SERVER_PORT | wc -l`
|
||||
if [ $SERVER_PORT_COUNT -gt 0 ]; then
|
||||
echo "ERROR: The $SERVER_NAME port $SERVER_PORT already used!"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
# 项目日志输出绝对路径
|
||||
LOGS_DIR=$DEPLOY_DIR/logs
|
||||
# 如果logs文件夹不存在,则创建文件夹
|
||||
if [ ! -d $LOGS_DIR ]; then
|
||||
mkdir $LOGS_DIR
|
||||
fi
|
||||
STDOUT_FILE=$LOGS_DIR/catalina.log
|
||||
|
||||
# JVM Configuration
|
||||
JAVA_OPTS=" -Djava.awt.headless=true -Djava.net.preferIPv4Stack=true "
|
||||
JAVA_DEBUG_OPTS=""
|
||||
if [ "$1" = "debug" ]; then
|
||||
JAVA_DEBUG_OPTS=" -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n "
|
||||
fi
|
||||
|
||||
JAVA_JMX_OPTS=""
|
||||
if [ "$1" = "jmx" ]; then
|
||||
JAVA_JMX_OPTS=" -Dcom.sun.management.jmxremote.port=1099 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false "
|
||||
fi
|
||||
|
||||
JAVA_MEM_OPTS=""
|
||||
BITS=`java -version 2>&1 | grep -i 64-bit`
|
||||
if [ -n "$BITS" ]; then
|
||||
JAVA_MEM_OPTS=" -server -Xmx512m -Xms512m -Xmn256m -XX:PermSize=128m -Xss256k -XX:+DisableExplicitGC -XX:+UseConcMarkSweepGC -XX:+CMSParallelRemarkEnabled -XX:+UseCMSCompactAtFullCollection -XX:LargePageSizeInBytes=128m -XX:+UseFastAccessorMethods -XX:+UseCMSInitiatingOccupancyOnly -XX:CMSInitiatingOccupancyFraction=70 "
|
||||
else
|
||||
JAVA_MEM_OPTS=" -server -Xms512m -Xmx512m -XX:PermSize=128m -XX:SurvivorRatio=2 -XX:+UseParallelGC "
|
||||
fi
|
||||
|
||||
# 加载外部log4j2文件的配置
|
||||
LOG_IMPL_FILE=log4j2.xml
|
||||
LOGGING_CONFIG=""
|
||||
if [ -f "$CONF_DIR/$LOG_IMPL_FILE" ]
|
||||
then
|
||||
LOGGING_CONFIG="-Dlogging.config=$CONF_DIR/$LOG_IMPL_FILE"
|
||||
fi
|
||||
CONFIG_FILES=" -Dlogging.path=$LOGS_DIR $LOGGING_CONFIG -Dspring.config.location=$CONF_DIR/ "
|
||||
echo -e "Starting the $SERVER_NAME ..."
|
||||
nohup java $JAVA_OPTS $JAVA_MEM_OPTS $JAVA_DEBUG_OPTS $JAVA_JMX_OPTS $CONFIG_FILES -jar $DEPLOY_DIR/lib/$JAR_NAME > $STDOUT_FILE 2>&1 &
|
||||
|
||||
COUNT=0
|
||||
while [ $COUNT -lt 1 ]; do
|
||||
echo -e ".\c"
|
||||
sleep 1
|
||||
if [ -n "$SERVER_PORT" ]; then
|
||||
COUNT=`netstat -an | grep $SERVER_PORT | wc -l`
|
||||
else
|
||||
COUNT=`ps -f | grep java | grep "$DEPLOY_DIR" | awk '{print $2}' | wc -l`
|
||||
fi
|
||||
if [ $COUNT -gt 0 ]; then
|
||||
break
|
||||
fi
|
||||
done
|
||||
|
||||
|
||||
echo "OK!"
|
||||
PIDS=`ps -f | grep java | grep "$DEPLOY_DIR" | awk '{print $2}'`
|
||||
echo "PID: $PIDS"
|
||||
echo "STDOUT: $STDOUT_FILE"
|
||||
@@ -94,6 +94,7 @@
|
||||
</dependencies>
|
||||
|
||||
<build>
|
||||
<finalName>hertz-beat-collector</finalName>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>com.alipay.sofa</groupId>
|
||||
@@ -118,6 +119,27 @@
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-assembly-plugin</artifactId>
|
||||
<version>3.3.0</version>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>make-zip</id>
|
||||
<!--绑定的maven操作-->
|
||||
<phase>package</phase>
|
||||
<!--运行一次-->
|
||||
<goals>
|
||||
<goal>single</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<descriptors>
|
||||
<descriptor>../assembly/collector/assembly.xml</descriptor>
|
||||
</descriptors>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user