Commit 07ef24bd authored by AlexStocks's avatar AlexStocks

add windows scripts

parent 509f1bdd
...@@ -11,16 +11,22 @@ ...@@ -11,16 +11,22 @@
APP_NAME="APPLICATION_NAME" APP_NAME="APPLICATION_NAME"
APP_ARGS="" APP_ARGS=""
SLEEP_INTERVAL=5
MAX_LIFETIME=4000
PROJECT_HOME="" PROJECT_HOME=""
OS_NAME=`uname` OS_NAME=`uname`
if [[ ${OS_NAME} == "Linux" ]]; then if [[ ${OS_NAME} != "Windows" ]]; then
PROJECT_HOME=`pwd` PROJECT_HOME=`pwd`
PROJECT_HOME=${PROJECT_HOME}"/" PROJECT_HOME=${PROJECT_HOME}"/"
else
APP_NAME="APPLICATION_NAME.exe"
fi fi
export APP_CONF_FILE=${PROJECT_HOME}"TARGET_CONF_FILE" export APP_CONF_FILE=${PROJECT_HOME}"TARGET_CONF_FILE"
export APP_LOG_CONF_FILE=${PROJECT_HOME}"TARGET_LOG_CONF_FILE" export APP_LOG_CONF_FILE=${PROJECT_HOME}"TARGET_LOG_CONF_FILE"
# export GOTRACEBACK=system
# export GODEBUG=gctrace=1
usage() { usage() {
echo "Usage: $0 start" echo "Usage: $0 start"
...@@ -28,6 +34,8 @@ usage() { ...@@ -28,6 +34,8 @@ usage() {
echo " $0 term" echo " $0 term"
echo " $0 restart" echo " $0 restart"
echo " $0 list" echo " $0 list"
echo " $0 monitor"
echo " $0 crontab"
exit exit
} }
...@@ -40,21 +48,21 @@ start() { ...@@ -40,21 +48,21 @@ start() {
CMD="${APP_BIN}" CMD="${APP_BIN}"
eval ${CMD} eval ${CMD}
PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{print $2}'` PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{print $2}'`
if [[ ${OS_NAME} != "Linux" ]]; then if [[ ${OS_NAME} != "Linux" && ${OS_NAME} != "Darwin" ]]; then
PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{print $1}'` PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{print $1}'`
fi fi
if [ "${PID}" != "" ]; CUR=`date +%FT%T`
then if [ "${PID}" != "" ]; then
for p in ${PID} for p in ${PID}
do do
echo "start ${APP_NAME} ( pid =" ${p} ")" echo "start ${APP_NAME} ( pid =" ${p} ") at " ${CUR}
done done
fi fi
} }
stop() { stop() {
PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{print $2}'` PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{print $2}'`
if [[ ${OS_NAME} != "Linux" ]]; then if [[ ${OS_NAME} != "Linux" && ${OS_NAME} != "Darwin" ]]; then
PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{print $1}'` PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{print $1}'`
fi fi
if [ "${PID}" != "" ]; if [ "${PID}" != "" ];
...@@ -70,7 +78,7 @@ stop() { ...@@ -70,7 +78,7 @@ stop() {
term() { term() {
PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{print $2}'` PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{print $2}'`
if [[ ${OS_NAME} != "Linux" ]]; then if [[ ${OS_NAME} != "Linux" && ${OS_NAME} != "Darwin" ]]; then
PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{print $1}'` PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{print $1}'`
fi fi
if [ "${PID}" != "" ]; if [ "${PID}" != "" ];
...@@ -85,19 +93,18 @@ term() { ...@@ -85,19 +93,18 @@ term() {
list() { list() {
PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{printf("%s,%s,%s,%s\n", $1, $2, $9, $10)}'` PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{printf("%s,%s,%s,%s\n", $1, $2, $9, $10)}'`
if [[ ${OS_NAME} != "Linux" ]]; then if [[ ${OS_NAME} != "Linux" && ${OS_NAME} != "Darwin" ]]; then
PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{printf("%s,%s,%s,%s,%s\n", $1, $4, $6, $7, $8)}'` PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{printf("%s,%s,%s,%s,%s\n", $1, $4, $6, $7, $8)}'`
fi fi
if [ "${PID}" != "" ]; if [ "${PID}" != "" ]; then
then
echo "list ${APP_NAME}" echo "list ${APP_NAME}"
if [[ ${OS_NAME} == "Linux" ]]; then if [[ ${OS_NAME} == "Linux" || ${OS_NAME} == "Darwin" ]]; then
echo "index: user, pid, start, duration" echo "index: user, pid, start, duration"
else else
echo "index: PID, WINPID, UID, STIME, COMMAND" echo "index: PID, WINPID, UID, STIME, COMMAND"
fi fi
idx=0 idx=0
for ps in ${PID} for ps in ${PID}
do do
...@@ -107,6 +114,47 @@ list() { ...@@ -107,6 +114,47 @@ list() {
fi fi
} }
monitor() {
idx=0
while true; do
PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{print $2}'`
if [[ ${OS_NAME} != "Linux" && ${OS_NAME} != "Darwin" ]]; then
PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{print $1}'`
fi
if [[ "${PID}" == "" ]]; then
start
idx=0
fi
((LIFE=idx*${SLEEP_INTERVAL}))
echo "${APP_NAME} ( pid = " ${PID} ") has been working in normal state for " $LIFE " seconds."
((idx ++))
sleep ${SLEEP_INTERVAL}
done
}
crontab() {
idx=0
while true; do
PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{print $2}'`
if [[ ${OS_NAME} != "Linux" && ${OS_NAME} != "Darwin" ]]; then
PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{print $1}'`
fi
if [[ "${PID}" == "" ]]; then
start
idx=0
fi
((LIFE=idx*${SLEEP_INTERVAL}))
echo "${APP_NAME} ( pid = " ${PID} ") has been working in normal state for " $LIFE " seconds."
((idx ++))
sleep ${SLEEP_INTERVAL}
if [[ ${LIFE} -gt ${MAX_LIFETIME} ]]; then
kill -9 ${PID}
fi
done
}
opt=$1 opt=$1
case C"$opt" in case C"$opt" in
Cstart) Cstart)
...@@ -125,6 +173,12 @@ case C"$opt" in ...@@ -125,6 +173,12 @@ case C"$opt" in
Clist) Clist)
list list
;; ;;
Cmonitor)
monitor
;;
Ccrontab)
crontab
;;
C*) C*)
usage usage
;; ;;
......
...@@ -9,9 +9,9 @@ ...@@ -9,9 +9,9 @@
# FILE : app.properties # FILE : app.properties
# ****************************************************** # ******************************************************
TARGET_EXEC_NAME="echo_client" export TARGET_EXEC_NAME="echo_client"
BUILD_PACKAGE="app" export BUILD_PACKAGE="app"
TARGET_CONF_FILE="conf/config.toml" export TARGET_CONF_FILE="conf/config.toml"
TARGET_LOG_CONF_FILE="conf/log.xml" export TARGET_LOG_CONF_FILE="conf/log.xml"
...@@ -20,16 +20,16 @@ if [[ ${GOOS} == "windows" ]]; then ...@@ -20,16 +20,16 @@ if [[ ${GOOS} == "windows" ]]; then
TARGET_SBIN_NAME=${TARGET_SBIN_NAME}.exe TARGET_SBIN_NAME=${TARGET_SBIN_NAME}.exe
fi fi
TARGET_NAME=${TARGET_FOLDER}/${TARGET_SBIN_NAME} TARGET_NAME=${TARGET_FOLDER}/${TARGET_SBIN_NAME}
if [[ $PROFILE = "test" ]]; then if [[ $PROFILE == "dev" || $PROFILE == "test" ]]; then
# GFLAGS=-gcflags "-N -l" -race -x -v # -x会把go build的详细过程输出 # GFLAGS=-gcflags "-N -l" -race -x -v # -x会把go build的详细过程输出
# GFLAGS=-gcflags "-N -l" -race -v # GFLAGS=-gcflags "-N -l" -race -v
# GFLAGS="-gcflags \"-N -l\" -v" # GFLAGS="-gcflags \"-N -l\" -v"
cd ${BUILD_PACKAGE} && go build -gcflags "-N -l" -x -v -i -o ${TARGET_NAME} && cd - cd ${BUILD_PACKAGE} && GOOS=$GOOS GOARCH=$GOARCH go build -gcflags "-N -l" -x -v -i -o ${TARGET_NAME} && cd -
else else
# -s去掉符号表(然后panic时候的stack trace就没有任何文件名/行号信息了,这个等价于普通C/C++程序被strip的效果), # -s去掉符号表(然后panic时候的stack trace就没有任何文件名/行号信息了,这个等价于普通C/C++程序被strip的效果),
# -w去掉DWARF调试信息,得到的程序就不能用gdb调试了。-s和-w也可以分开使用,一般来说如果不打算用gdb调试, # -w去掉DWARF调试信息,得到的程序就不能用gdb调试了。-s和-w也可以分开使用,一般来说如果不打算用gdb调试,
# -w基本没啥损失。-s的损失就有点大了。 # -w基本没啥损失。-s的损失就有点大了。
cd ${BUILD_PACKAGE} && go build -ldflags "-w" -x -v -i -o ${TARGET_NAME} && cd - cd ${BUILD_PACKAGE} && GOOS=$GOOS GOARCH=$GOARCH go build -ldflags "-w" -x -v -i -o ${TARGET_NAME} && cd -
fi fi
TAR_NAME=${TARGET_EXEC_NAME}-${version}-`date "+%Y%m%d-%H%M"`-${PROFILE} TAR_NAME=${TARGET_EXEC_NAME}-${version}-`date "+%Y%m%d-%H%M"`-${PROFILE}
...@@ -45,22 +45,25 @@ mkdir -p ${CONF_DIR} ...@@ -45,22 +45,25 @@ mkdir -p ${CONF_DIR}
mv ${TARGET_NAME} ${SBIN_DIR} mv ${TARGET_NAME} ${SBIN_DIR}
cp -r assembly/bin ${BIN_DIR} cp -r assembly/bin ${BIN_DIR}
cd ${BIN_DIR}/bin/ && mv load.sh load_${TARGET_EXEC_NAME}.sh && cd -
platform=$(uname)
# modify APPLICATION_NAME # modify APPLICATION_NAME
# OS=`uname` if [ ${platform} == "Darwin" ]; then
# if [[ $OS=="Darwin" ]]; then
if [ "$(uname)" == "Darwin" ]; then
sed -i "" "s~APPLICATION_NAME~${TARGET_EXEC_NAME}~g" ${BIN_DIR}/bin/* sed -i "" "s~APPLICATION_NAME~${TARGET_EXEC_NAME}~g" ${BIN_DIR}/bin/*
else else
sed -i "s~APPLICATION_NAME~${TARGET_EXEC_NAME}~g" ${BIN_DIR}/bin/* sed -i "s~APPLICATION_NAME~${TARGET_EXEC_NAME}~g" ${BIN_DIR}/bin/*
fi fi
# modify TARGET_CONF_FILE # modify TARGET_CONF_FILE
if [ "$(uname)" == "Darwin" ]; then if [ ${platform} == "Darwin" ]; then
sed -i "" "s~TARGET_CONF_FILE~${TARGET_CONF_FILE}~g" ${BIN_DIR}/bin/* sed -i "" "s~TARGET_CONF_FILE~${TARGET_CONF_FILE}~g" ${BIN_DIR}/bin/*
else else
sed -i "s~TARGET_CONF_FILE~${TARGET_CONF_FILE}~g" ${BIN_DIR}/bin/* sed -i "s~TARGET_CONF_FILE~${TARGET_CONF_FILE}~g" ${BIN_DIR}/bin/*
fi fi
# modify TARGET_LOG_CONF_FILE # modify TARGET_LOG_CONF_FILE
if [ "$(uname)" == "Darwin" ]; then if [ ${platform} == "Darwin" ]; then
sed -i "" "s~TARGET_LOG_CONF_FILE~${TARGET_LOG_CONF_FILE}~g" ${BIN_DIR}/bin/* sed -i "" "s~TARGET_LOG_CONF_FILE~${TARGET_LOG_CONF_FILE}~g" ${BIN_DIR}/bin/*
else else
sed -i "s~TARGET_LOG_CONF_FILE~${TARGET_LOG_CONF_FILE}~g" ${BIN_DIR}/bin/* sed -i "s~TARGET_LOG_CONF_FILE~${TARGET_LOG_CONF_FILE}~g" ${BIN_DIR}/bin/*
......
#!/usr/bin/env bash
# ******************************************************
# DESC : build script for release env
# AUTHOR : Alex Stocks
# VERSION : 1.0
# LICENCE : Apache License 2.0
# EMAIL : alexstocks@foxmail.com
# MOD : 2016-07-12 16:34
# FILE : test.sh
# ******************************************************
set -e
export GOOS=linux
export GOARCH=amd64
export PROFILE="release"
export PROJECT_HOME=`pwd`
if [ -f "${PROJECT_HOME}/assembly/common/app.properties" ]; then
. ${PROJECT_HOME}/assembly/common/app.properties
fi
if [ -f "${PROJECT_HOME}/assembly/common/build.sh" ]; then
sh ${PROJECT_HOME}/assembly/common/build.sh
fi
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
# DESC : build script for test env # DESC : build script for test env
# AUTHOR : Alex Stocks # AUTHOR : Alex Stocks
# VERSION : 1.0 # VERSION : 1.0
# LICENCE : LGPL V3 # LICENCE : Apache License 2.0
# EMAIL : alexstocks@foxmail.com # EMAIL : alexstocks@foxmail.com
# MOD : 2016-07-12 16:34 # MOD : 2016-07-12 16:34
# FILE : test.sh # FILE : test.sh
...@@ -15,15 +15,14 @@ set -e ...@@ -15,15 +15,14 @@ set -e
export GOOS=linux export GOOS=linux
export GOARCH=amd64 export GOARCH=amd64
PROFILE=test export PROFILE="test"
export PROJECT_HOME=`pwd`
PROJECT_HOME=`pwd`
if [ -f "${PROJECT_HOME}/assembly/common/app.properties" ]; then if [ -f "${PROJECT_HOME}/assembly/common/app.properties" ]; then
. ${PROJECT_HOME}/assembly/common/app.properties . ${PROJECT_HOME}/assembly/common/app.properties
fi fi
if [ -f "${PROJECT_HOME}/assembly/common/build.sh" ]; then if [ -f "${PROJECT_HOME}/assembly/common/build.sh" ]; then
. ${PROJECT_HOME}/assembly/common/build.sh sh ${PROJECT_HOME}/assembly/common/build.sh
fi fi
#!/usr/bin/env bash
# ******************************************************
# DESC : build script for release env
# AUTHOR : Alex Stocks
# VERSION : 1.0
# LICENCE : Apache License 2.0
# EMAIL : alexstocks@foxmail.com
# MOD : 2016-07-12 16:34
# FILE : test.sh
# ******************************************************
set -e
export GOOS=darwin
export GOARCH=amd64
export PROFILE="release"
export PROJECT_HOME=`pwd`
if [ -f "${PROJECT_HOME}/assembly/common/app.properties" ]; then
. ${PROJECT_HOME}/assembly/common/app.properties
fi
if [ -f "${PROJECT_HOME}/assembly/common/build.sh" ]; then
sh ${PROJECT_HOME}/assembly/common/build.sh
fi
...@@ -15,15 +15,14 @@ set -e ...@@ -15,15 +15,14 @@ set -e
export GOOS=darwin export GOOS=darwin
export GOARCH=amd64 export GOARCH=amd64
PROFILE=test export PROFILE="test"
export PROJECT_HOME=`pwd`
PROJECT_HOME=`pwd`
if [ -f "${PROJECT_HOME}/assembly/common/app.properties" ]; then if [ -f "${PROJECT_HOME}/assembly/common/app.properties" ]; then
. ${PROJECT_HOME}/assembly/common/app.properties . ${PROJECT_HOME}/assembly/common/app.properties
fi fi
if [ -f "${PROJECT_HOME}/assembly/common/build.sh" ]; then if [ -f "${PROJECT_HOME}/assembly/common/build.sh" ]; then
. ${PROJECT_HOME}/assembly/common/build.sh sh ${PROJECT_HOME}/assembly/common/build.sh
fi fi
#!/usr/bin/env bash
# ******************************************************
# DESC : build script for release env
# AUTHOR : Alex Stocks
# VERSION : 1.0
# LICENCE : Apache License 2.0
# EMAIL : alexstocks@foxmail.com
# MOD : 2016-07-12 16:34
# FILE : test.sh
# ******************************************************
set -e
export GOOS=windows
export GOARCH=amd64
export PROFILE="release"
export PROJECT_HOME=`pwd`
if [ -f "${PROJECT_HOME}/assembly/common/app.properties" ]; then
. ${PROJECT_HOME}/assembly/common/app.properties
fi
if [ -f "${PROJECT_HOME}/assembly/common/build.sh" ]; then
sh ${PROJECT_HOME}/assembly/common/build.sh
fi
...@@ -15,15 +15,13 @@ set -e ...@@ -15,15 +15,13 @@ set -e
export GOOS=windows export GOOS=windows
export GOARCH=amd64 export GOARCH=amd64
PROFILE=test export PROFILE="test"
export PROJECT_HOME=`pwd`
PROJECT_HOME=`pwd`
if [ -f "${PROJECT_HOME}/assembly/common/app.properties" ]; then if [ -f "${PROJECT_HOME}/assembly/common/app.properties" ]; then
. ${PROJECT_HOME}/assembly/common/app.properties . ${PROJECT_HOME}/assembly/common/app.properties
fi fi
if [ -f "${PROJECT_HOME}/assembly/common/build.sh" ]; then if [ -f "${PROJECT_HOME}/assembly/common/build.sh" ]; then
. ${PROJECT_HOME}/assembly/common/build.sh sh ${PROJECT_HOME}/assembly/common/build.sh
fi fi
...@@ -11,16 +11,22 @@ ...@@ -11,16 +11,22 @@
APP_NAME="APPLICATION_NAME" APP_NAME="APPLICATION_NAME"
APP_ARGS="" APP_ARGS=""
SLEEP_INTERVAL=5
MAX_LIFETIME=4000
PROJECT_HOME="" PROJECT_HOME=""
OS_NAME=`uname` OS_NAME=`uname`
if [[ ${OS_NAME} == "Linux" ]]; then if [[ ${OS_NAME} != "Windows" ]]; then
PROJECT_HOME=`pwd` PROJECT_HOME=`pwd`
PROJECT_HOME=${PROJECT_HOME}"/" PROJECT_HOME=${PROJECT_HOME}"/"
else
APP_NAME="APPLICATION_NAME.exe"
fi fi
export APP_CONF_FILE=${PROJECT_HOME}"TARGET_CONF_FILE" export APP_CONF_FILE=${PROJECT_HOME}"TARGET_CONF_FILE"
export APP_LOG_CONF_FILE=${PROJECT_HOME}"TARGET_LOG_CONF_FILE" export APP_LOG_CONF_FILE=${PROJECT_HOME}"TARGET_LOG_CONF_FILE"
# export GOTRACEBACK=system
# export GODEBUG=gctrace=1
usage() { usage() {
echo "Usage: $0 start" echo "Usage: $0 start"
...@@ -28,6 +34,8 @@ usage() { ...@@ -28,6 +34,8 @@ usage() {
echo " $0 term" echo " $0 term"
echo " $0 restart" echo " $0 restart"
echo " $0 list" echo " $0 list"
echo " $0 monitor"
echo " $0 crontab"
exit exit
} }
...@@ -40,21 +48,21 @@ start() { ...@@ -40,21 +48,21 @@ start() {
CMD="${APP_BIN}" CMD="${APP_BIN}"
eval ${CMD} eval ${CMD}
PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{print $2}'` PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{print $2}'`
if [[ ${OS_NAME} != "Linux" ]]; then if [[ ${OS_NAME} != "Linux" && ${OS_NAME} != "Darwin" ]]; then
PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{print $1}'` PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{print $1}'`
fi fi
if [ "${PID}" != "" ]; CUR=`date +%FT%T`
then if [ "${PID}" != "" ]; then
for p in ${PID} for p in ${PID}
do do
echo "start ${APP_NAME} ( pid =" ${p} ")" echo "start ${APP_NAME} ( pid =" ${p} ") at " ${CUR}
done done
fi fi
} }
stop() { stop() {
PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{print $2}'` PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{print $2}'`
if [[ ${OS_NAME} != "Linux" ]]; then if [[ ${OS_NAME} != "Linux" && ${OS_NAME} != "Darwin" ]]; then
PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{print $1}'` PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{print $1}'`
fi fi
if [ "${PID}" != "" ]; if [ "${PID}" != "" ];
...@@ -70,7 +78,7 @@ stop() { ...@@ -70,7 +78,7 @@ stop() {
term() { term() {
PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{print $2}'` PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{print $2}'`
if [[ ${OS_NAME} != "Linux" ]]; then if [[ ${OS_NAME} != "Linux" && ${OS_NAME} != "Darwin" ]]; then
PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{print $1}'` PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{print $1}'`
fi fi
if [ "${PID}" != "" ]; if [ "${PID}" != "" ];
...@@ -85,19 +93,18 @@ term() { ...@@ -85,19 +93,18 @@ term() {
list() { list() {
PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{printf("%s,%s,%s,%s\n", $1, $2, $9, $10)}'` PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{printf("%s,%s,%s,%s\n", $1, $2, $9, $10)}'`
if [[ ${OS_NAME} != "Linux" ]]; then if [[ ${OS_NAME} != "Linux" && ${OS_NAME} != "Darwin" ]]; then
PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{printf("%s,%s,%s,%s,%s\n", $1, $4, $6, $7, $8)}'` PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{printf("%s,%s,%s,%s,%s\n", $1, $4, $6, $7, $8)}'`
fi fi
if [ "${PID}" != "" ]; if [ "${PID}" != "" ]; then
then
echo "list ${APP_NAME}" echo "list ${APP_NAME}"
if [[ ${OS_NAME} == "Linux" ]]; then if [[ ${OS_NAME} == "Linux" || ${OS_NAME} == "Darwin" ]]; then
echo "index: user, pid, start, duration" echo "index: user, pid, start, duration"
else else
echo "index: PID, WINPID, UID, STIME, COMMAND" echo "index: PID, WINPID, UID, STIME, COMMAND"
fi fi
idx=0 idx=0
for ps in ${PID} for ps in ${PID}
do do
...@@ -107,6 +114,47 @@ list() { ...@@ -107,6 +114,47 @@ list() {
fi fi
} }
monitor() {
idx=0
while true; do
PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{print $2}'`
if [[ ${OS_NAME} != "Linux" && ${OS_NAME} != "Darwin" ]]; then
PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{print $1}'`
fi
if [[ "${PID}" == "" ]]; then
start
idx=0
fi
((LIFE=idx*${SLEEP_INTERVAL}))
echo "${APP_NAME} ( pid = " ${PID} ") has been working in normal state for " $LIFE " seconds."
((idx ++))
sleep ${SLEEP_INTERVAL}
done
}
crontab() {
idx=0
while true; do
PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{print $2}'`
if [[ ${OS_NAME} != "Linux" && ${OS_NAME} != "Darwin" ]]; then
PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{print $1}'`
fi
if [[ "${PID}" == "" ]]; then
start
idx=0
fi
((LIFE=idx*${SLEEP_INTERVAL}))
echo "${APP_NAME} ( pid = " ${PID} ") has been working in normal state for " $LIFE " seconds."
((idx ++))
sleep ${SLEEP_INTERVAL}
if [[ ${LIFE} -gt ${MAX_LIFETIME} ]]; then
kill -9 ${PID}
fi
done
}
opt=$1 opt=$1
case C"$opt" in case C"$opt" in
Cstart) Cstart)
...@@ -125,6 +173,12 @@ case C"$opt" in ...@@ -125,6 +173,12 @@ case C"$opt" in
Clist) Clist)
list list
;; ;;
Cmonitor)
monitor
;;
Ccrontab)
crontab
;;
C*) C*)
usage usage
;; ;;
......
...@@ -9,8 +9,9 @@ ...@@ -9,8 +9,9 @@
# FILE : app.properties # FILE : app.properties
# ****************************************************** # ******************************************************
TARGET_EXEC_NAME="echo_server" export TARGET_EXEC_NAME="echo_server"
BUILD_PACKAGE="app" export BUILD_PACKAGE="app"
export TARGET_CONF_FILE="conf/config.toml"
export TARGET_LOG_CONF_FILE="conf/log.xml"
TARGET_CONF_FILE="conf/config.toml"
TARGET_LOG_CONF_FILE="conf/log.xml"
...@@ -20,16 +20,16 @@ if [[ ${GOOS} == "windows" ]]; then ...@@ -20,16 +20,16 @@ if [[ ${GOOS} == "windows" ]]; then
TARGET_SBIN_NAME=${TARGET_SBIN_NAME}.exe TARGET_SBIN_NAME=${TARGET_SBIN_NAME}.exe
fi fi
TARGET_NAME=${TARGET_FOLDER}/${TARGET_SBIN_NAME} TARGET_NAME=${TARGET_FOLDER}/${TARGET_SBIN_NAME}
if [[ $PROFILE = "test" ]]; then if [[ $PROFILE == "dev" || $PROFILE == "test" ]]; then
# GFLAGS=-gcflags "-N -l" -race -x -v # -x会把go build的详细过程输出 # GFLAGS=-gcflags "-N -l" -race -x -v # -x会把go build的详细过程输出
# GFLAGS=-gcflags "-N -l" -race -v # GFLAGS=-gcflags "-N -l" -race -v
# GFLAGS="-gcflags \"-N -l\" -v" # GFLAGS="-gcflags \"-N -l\" -v"
cd ${BUILD_PACKAGE} && go build -gcflags "-N -l" -x -v -i -o ${TARGET_NAME} && cd - cd ${BUILD_PACKAGE} && GOOS=$GOOS GOARCH=$GOARCH go build -gcflags "-N -l" -x -v -i -o ${TARGET_NAME} && cd -
else else
# -s去掉符号表(然后panic时候的stack trace就没有任何文件名/行号信息了,这个等价于普通C/C++程序被strip的效果), # -s去掉符号表(然后panic时候的stack trace就没有任何文件名/行号信息了,这个等价于普通C/C++程序被strip的效果),
# -w去掉DWARF调试信息,得到的程序就不能用gdb调试了。-s和-w也可以分开使用,一般来说如果不打算用gdb调试, # -w去掉DWARF调试信息,得到的程序就不能用gdb调试了。-s和-w也可以分开使用,一般来说如果不打算用gdb调试,
# -w基本没啥损失。-s的损失就有点大了。 # -w基本没啥损失。-s的损失就有点大了。
cd ${BUILD_PACKAGE} && go build -ldflags "-w" -x -v -i -o ${TARGET_NAME} && cd - cd ${BUILD_PACKAGE} && GOOS=$GOOS GOARCH=$GOARCH go build -ldflags "-w" -x -v -i -o ${TARGET_NAME} && cd -
fi fi
TAR_NAME=${TARGET_EXEC_NAME}-${version}-`date "+%Y%m%d-%H%M"`-${PROFILE} TAR_NAME=${TARGET_EXEC_NAME}-${version}-`date "+%Y%m%d-%H%M"`-${PROFILE}
...@@ -45,22 +45,25 @@ mkdir -p ${CONF_DIR} ...@@ -45,22 +45,25 @@ mkdir -p ${CONF_DIR}
mv ${TARGET_NAME} ${SBIN_DIR} mv ${TARGET_NAME} ${SBIN_DIR}
cp -r assembly/bin ${BIN_DIR} cp -r assembly/bin ${BIN_DIR}
cd ${BIN_DIR}/bin/ && mv load.sh load_${TARGET_EXEC_NAME}.sh && cd -
platform=$(uname)
# modify APPLICATION_NAME # modify APPLICATION_NAME
if [ "$(uname)" == "Darwin" ]; then if [ ${platform} == "Darwin" ]; then
sed -i "" "s~APPLICATION_NAME~${TARGET_EXEC_NAME}~g" ${BIN_DIR}/bin/* sed -i "" "s~APPLICATION_NAME~${TARGET_EXEC_NAME}~g" ${BIN_DIR}/bin/*
else else
sed -i "s~APPLICATION_NAME~${TARGET_EXEC_NAME}~g" ${BIN_DIR}/bin/* sed -i "s~APPLICATION_NAME~${TARGET_EXEC_NAME}~g" ${BIN_DIR}/bin/*
fi fi
# modify TARGET_CONF_FILE # modify TARGET_CONF_FILE
if [ "$(uname)" == "Darwin" ]; then if [ ${platform} == "Darwin" ]; then
sed -i "" "s~TARGET_CONF_FILE~${TARGET_CONF_FILE}~g" ${BIN_DIR}/bin/* sed -i "" "s~TARGET_CONF_FILE~${TARGET_CONF_FILE}~g" ${BIN_DIR}/bin/*
else else
sed -i "s~TARGET_CONF_FILE~${TARGET_CONF_FILE}~g" ${BIN_DIR}/bin/* sed -i "s~TARGET_CONF_FILE~${TARGET_CONF_FILE}~g" ${BIN_DIR}/bin/*
fi fi
# modify TARGET_LOG_CONF_FILE
if [ "$(uname)" == "Darwin" ]; then # modify TARGET_LOG_CONF_FILE
if [ ${platform} == "Darwin" ]; then
sed -i "" "s~TARGET_LOG_CONF_FILE~${TARGET_LOG_CONF_FILE}~g" ${BIN_DIR}/bin/* sed -i "" "s~TARGET_LOG_CONF_FILE~${TARGET_LOG_CONF_FILE}~g" ${BIN_DIR}/bin/*
else else
sed -i "s~TARGET_LOG_CONF_FILE~${TARGET_LOG_CONF_FILE}~g" ${BIN_DIR}/bin/* sed -i "s~TARGET_LOG_CONF_FILE~${TARGET_LOG_CONF_FILE}~g" ${BIN_DIR}/bin/*
......
#!/usr/bin/env bash
# ******************************************************
# DESC : build script for release env
# AUTHOR : Alex Stocks
# VERSION : 1.0
# LICENCE : Apache License 2.0
# EMAIL : alexstocks@foxmail.com
# MOD : 2016-07-12 16:34
# FILE : test.sh
# ******************************************************
set -e
export GOOS=linux
export GOARCH=amd64
export PROFILE="release"
export PROJECT_HOME=`pwd`
if [ -f "${PROJECT_HOME}/assembly/common/app.properties" ]; then
. ${PROJECT_HOME}/assembly/common/app.properties
fi
if [ -f "${PROJECT_HOME}/assembly/common/build.sh" ]; then
sh ${PROJECT_HOME}/assembly/common/build.sh
fi
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
# DESC : build script for test env # DESC : build script for test env
# AUTHOR : Alex Stocks # AUTHOR : Alex Stocks
# VERSION : 1.0 # VERSION : 1.0
# LICENCE : LGPL V3 # LICENCE : Apache License 2.0
# EMAIL : alexstocks@foxmail.com # EMAIL : alexstocks@foxmail.com
# MOD : 2016-07-12 16:34 # MOD : 2016-07-12 16:34
# FILE : test.sh # FILE : test.sh
...@@ -15,15 +15,14 @@ set -e ...@@ -15,15 +15,14 @@ set -e
export GOOS=linux export GOOS=linux
export GOARCH=amd64 export GOARCH=amd64
PROFILE=test export PROFILE="test"
export PROJECT_HOME=`pwd`
PROJECT_HOME=`pwd`
if [ -f "${PROJECT_HOME}/assembly/common/app.properties" ]; then if [ -f "${PROJECT_HOME}/assembly/common/app.properties" ]; then
. ${PROJECT_HOME}/assembly/common/app.properties . ${PROJECT_HOME}/assembly/common/app.properties
fi fi
if [ -f "${PROJECT_HOME}/assembly/common/build.sh" ]; then if [ -f "${PROJECT_HOME}/assembly/common/build.sh" ]; then
. ${PROJECT_HOME}/assembly/common/build.sh sh ${PROJECT_HOME}/assembly/common/build.sh
fi fi
#!/usr/bin/env bash
# ******************************************************
# DESC : build script for release env
# AUTHOR : Alex Stocks
# VERSION : 1.0
# LICENCE : Apache License 2.0
# EMAIL : alexstocks@foxmail.com
# MOD : 2016-07-12 16:34
# FILE : test.sh
# ******************************************************
set -e
export GOOS=darwin
export GOARCH=amd64
export PROFILE="release"
export PROJECT_HOME=`pwd`
if [ -f "${PROJECT_HOME}/assembly/common/app.properties" ]; then
. ${PROJECT_HOME}/assembly/common/app.properties
fi
if [ -f "${PROJECT_HOME}/assembly/common/build.sh" ]; then
sh ${PROJECT_HOME}/assembly/common/build.sh
fi
...@@ -15,15 +15,14 @@ set -e ...@@ -15,15 +15,14 @@ set -e
export GOOS=darwin export GOOS=darwin
export GOARCH=amd64 export GOARCH=amd64
PROFILE=test export PROFILE="test"
export PROJECT_HOME=`pwd`
PROJECT_HOME=`pwd`
if [ -f "${PROJECT_HOME}/assembly/common/app.properties" ]; then if [ -f "${PROJECT_HOME}/assembly/common/app.properties" ]; then
. ${PROJECT_HOME}/assembly/common/app.properties . ${PROJECT_HOME}/assembly/common/app.properties
fi fi
if [ -f "${PROJECT_HOME}/assembly/common/build.sh" ]; then if [ -f "${PROJECT_HOME}/assembly/common/build.sh" ]; then
. ${PROJECT_HOME}/assembly/common/build.sh sh ${PROJECT_HOME}/assembly/common/build.sh
fi fi
#!/usr/bin/env bash
# ******************************************************
# DESC : build script for release env
# AUTHOR : Alex Stocks
# VERSION : 1.0
# LICENCE : Apache License 2.0
# EMAIL : alexstocks@foxmail.com
# MOD : 2016-07-12 16:34
# FILE : test.sh
# ******************************************************
set -e
export GOOS=windows
export GOARCH=amd64
export PROFILE="release"
export PROJECT_HOME=`pwd`
if [ -f "${PROJECT_HOME}/assembly/common/app.properties" ]; then
. ${PROJECT_HOME}/assembly/common/app.properties
fi
if [ -f "${PROJECT_HOME}/assembly/common/build.sh" ]; then
sh ${PROJECT_HOME}/assembly/common/build.sh
fi
...@@ -15,15 +15,14 @@ set -e ...@@ -15,15 +15,14 @@ set -e
export GOOS=windows export GOOS=windows
export GOARCH=amd64 export GOARCH=amd64
PROFILE=test export PROFILE="test"
export PROJECT_HOME=`pwd`
PROJECT_HOME=`pwd`
if [ -f "${PROJECT_HOME}/assembly/common/app.properties" ]; then if [ -f "${PROJECT_HOME}/assembly/common/app.properties" ]; then
. ${PROJECT_HOME}/assembly/common/app.properties . ${PROJECT_HOME}/assembly/common/app.properties
fi fi
if [ -f "${PROJECT_HOME}/assembly/common/build.sh" ]; then if [ -f "${PROJECT_HOME}/assembly/common/build.sh" ]; then
. ${PROJECT_HOME}/assembly/common/build.sh sh ${PROJECT_HOME}/assembly/common/build.sh
fi fi
...@@ -11,16 +11,22 @@ ...@@ -11,16 +11,22 @@
APP_NAME="APPLICATION_NAME" APP_NAME="APPLICATION_NAME"
APP_ARGS="" APP_ARGS=""
SLEEP_INTERVAL=5
MAX_LIFETIME=4000
PROJECT_HOME="" PROJECT_HOME=""
OS_NAME=`uname` OS_NAME=`uname`
if [[ ${OS_NAME} == "Linux" ]]; then if [[ ${OS_NAME} != "Windows" ]]; then
PROJECT_HOME=`pwd` PROJECT_HOME=`pwd`
PROJECT_HOME=${PROJECT_HOME}"/" PROJECT_HOME=${PROJECT_HOME}"/"
else
APP_NAME="APPLICATION_NAME.exe"
fi fi
export APP_CONF_FILE=${PROJECT_HOME}"TARGET_CONF_FILE" export APP_CONF_FILE=${PROJECT_HOME}"TARGET_CONF_FILE"
export APP_LOG_CONF_FILE=${PROJECT_HOME}"TARGET_LOG_CONF_FILE" export APP_LOG_CONF_FILE=${PROJECT_HOME}"TARGET_LOG_CONF_FILE"
# export GOTRACEBACK=system
# export GODEBUG=gctrace=1
usage() { usage() {
echo "Usage: $0 start" echo "Usage: $0 start"
...@@ -28,6 +34,8 @@ usage() { ...@@ -28,6 +34,8 @@ usage() {
echo " $0 term" echo " $0 term"
echo " $0 restart" echo " $0 restart"
echo " $0 list" echo " $0 list"
echo " $0 monitor"
echo " $0 crontab"
exit exit
} }
...@@ -40,21 +48,21 @@ start() { ...@@ -40,21 +48,21 @@ start() {
CMD="${APP_BIN}" CMD="${APP_BIN}"
eval ${CMD} eval ${CMD}
PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{print $2}'` PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{print $2}'`
if [[ ${OS_NAME} != "Linux" ]]; then if [[ ${OS_NAME} != "Linux" && ${OS_NAME} != "Darwin" ]]; then
PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{print $1}'` PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{print $1}'`
fi fi
if [ "${PID}" != "" ]; CUR=`date +%FT%T`
then if [ "${PID}" != "" ]; then
for p in ${PID} for p in ${PID}
do do
echo "start ${APP_NAME} ( pid =" ${p} ")" echo "start ${APP_NAME} ( pid =" ${p} ") at " ${CUR}
done done
fi fi
} }
stop() { stop() {
PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{print $2}'` PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{print $2}'`
if [[ ${OS_NAME} != "Linux" ]]; then if [[ ${OS_NAME} != "Linux" && ${OS_NAME} != "Darwin" ]]; then
PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{print $1}'` PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{print $1}'`
fi fi
if [ "${PID}" != "" ]; if [ "${PID}" != "" ];
...@@ -70,7 +78,7 @@ stop() { ...@@ -70,7 +78,7 @@ stop() {
term() { term() {
PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{print $2}'` PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{print $2}'`
if [[ ${OS_NAME} != "Linux" ]]; then if [[ ${OS_NAME} != "Linux" && ${OS_NAME} != "Darwin" ]]; then
PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{print $1}'` PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{print $1}'`
fi fi
if [ "${PID}" != "" ]; if [ "${PID}" != "" ];
...@@ -85,19 +93,18 @@ term() { ...@@ -85,19 +93,18 @@ term() {
list() { list() {
PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{printf("%s,%s,%s,%s\n", $1, $2, $9, $10)}'` PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{printf("%s,%s,%s,%s\n", $1, $2, $9, $10)}'`
if [[ ${OS_NAME} != "Linux" ]]; then if [[ ${OS_NAME} != "Linux" && ${OS_NAME} != "Darwin" ]]; then
PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{printf("%s,%s,%s,%s,%s\n", $1, $4, $6, $7, $8)}'` PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{printf("%s,%s,%s,%s,%s\n", $1, $4, $6, $7, $8)}'`
fi fi
if [ "${PID}" != "" ]; if [ "${PID}" != "" ]; then
then
echo "list ${APP_NAME}" echo "list ${APP_NAME}"
if [[ ${OS_NAME} == "Linux" ]]; then if [[ ${OS_NAME} == "Linux" || ${OS_NAME} == "Darwin" ]]; then
echo "index: user, pid, start, duration" echo "index: user, pid, start, duration"
else else
echo "index: PID, WINPID, UID, STIME, COMMAND" echo "index: PID, WINPID, UID, STIME, COMMAND"
fi fi
idx=0 idx=0
for ps in ${PID} for ps in ${PID}
do do
...@@ -107,6 +114,47 @@ list() { ...@@ -107,6 +114,47 @@ list() {
fi fi
} }
monitor() {
idx=0
while true; do
PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{print $2}'`
if [[ ${OS_NAME} != "Linux" && ${OS_NAME} != "Darwin" ]]; then
PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{print $1}'`
fi
if [[ "${PID}" == "" ]]; then
start
idx=0
fi
((LIFE=idx*${SLEEP_INTERVAL}))
echo "${APP_NAME} ( pid = " ${PID} ") has been working in normal state for " $LIFE " seconds."
((idx ++))
sleep ${SLEEP_INTERVAL}
done
}
crontab() {
idx=0
while true; do
PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{print $2}'`
if [[ ${OS_NAME} != "Linux" && ${OS_NAME} != "Darwin" ]]; then
PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{print $1}'`
fi
if [[ "${PID}" == "" ]]; then
start
idx=0
fi
((LIFE=idx*${SLEEP_INTERVAL}))
echo "${APP_NAME} ( pid = " ${PID} ") has been working in normal state for " $LIFE " seconds."
((idx ++))
sleep ${SLEEP_INTERVAL}
if [[ ${LIFE} -gt ${MAX_LIFETIME} ]]; then
kill -9 ${PID}
fi
done
}
opt=$1 opt=$1
case C"$opt" in case C"$opt" in
Cstart) Cstart)
...@@ -125,6 +173,12 @@ case C"$opt" in ...@@ -125,6 +173,12 @@ case C"$opt" in
Clist) Clist)
list list
;; ;;
Cmonitor)
monitor
;;
Ccrontab)
crontab
;;
C*) C*)
usage usage
;; ;;
......
...@@ -9,9 +9,9 @@ ...@@ -9,9 +9,9 @@
# FILE : app.properties # FILE : app.properties
# ****************************************************** # ******************************************************
TARGET_EXEC_NAME="echo_client" export TARGET_EXEC_NAME="echo_client"
BUILD_PACKAGE="app" export BUILD_PACKAGE="app"
TARGET_CONF_FILE="conf/config.toml" export TARGET_CONF_FILE="conf/config.toml"
TARGET_LOG_CONF_FILE="conf/log.xml" export TARGET_LOG_CONF_FILE="conf/log.xml"
...@@ -20,16 +20,16 @@ if [[ ${GOOS} == "windows" ]]; then ...@@ -20,16 +20,16 @@ if [[ ${GOOS} == "windows" ]]; then
TARGET_SBIN_NAME=${TARGET_SBIN_NAME}.exe TARGET_SBIN_NAME=${TARGET_SBIN_NAME}.exe
fi fi
TARGET_NAME=${TARGET_FOLDER}/${TARGET_SBIN_NAME} TARGET_NAME=${TARGET_FOLDER}/${TARGET_SBIN_NAME}
if [[ $PROFILE = "test" ]]; then if [[ $PROFILE == "dev" || $PROFILE == "test" ]]; then
# GFLAGS=-gcflags "-N -l" -race -x -v # -x会把go build的详细过程输出 # GFLAGS=-gcflags "-N -l" -race -x -v # -x会把go build的详细过程输出
# GFLAGS=-gcflags "-N -l" -race -v # GFLAGS=-gcflags "-N -l" -race -v
# GFLAGS="-gcflags \"-N -l\" -v" # GFLAGS="-gcflags \"-N -l\" -v"
cd ${BUILD_PACKAGE} && go build -gcflags "-N -l" -x -v -i -o ${TARGET_NAME} && cd - cd ${BUILD_PACKAGE} && GOOS=$GOOS GOARCH=$GOARCH go build -gcflags "-N -l" -x -v -i -o ${TARGET_NAME} && cd -
else else
# -s去掉符号表(然后panic时候的stack trace就没有任何文件名/行号信息了,这个等价于普通C/C++程序被strip的效果), # -s去掉符号表(然后panic时候的stack trace就没有任何文件名/行号信息了,这个等价于普通C/C++程序被strip的效果),
# -w去掉DWARF调试信息,得到的程序就不能用gdb调试了。-s和-w也可以分开使用,一般来说如果不打算用gdb调试, # -w去掉DWARF调试信息,得到的程序就不能用gdb调试了。-s和-w也可以分开使用,一般来说如果不打算用gdb调试,
# -w基本没啥损失。-s的损失就有点大了。 # -w基本没啥损失。-s的损失就有点大了。
cd ${BUILD_PACKAGE} && go build -ldflags "-w" -x -v -i -o ${TARGET_NAME} && cd - cd ${BUILD_PACKAGE} && GOOS=$GOOS GOARCH=$GOARCH go build -ldflags "-w" -x -v -i -o ${TARGET_NAME} && cd -
fi fi
TAR_NAME=${TARGET_EXEC_NAME}-${version}-`date "+%Y%m%d-%H%M"`-${PROFILE} TAR_NAME=${TARGET_EXEC_NAME}-${version}-`date "+%Y%m%d-%H%M"`-${PROFILE}
...@@ -45,22 +45,25 @@ mkdir -p ${CONF_DIR} ...@@ -45,22 +45,25 @@ mkdir -p ${CONF_DIR}
mv ${TARGET_NAME} ${SBIN_DIR} mv ${TARGET_NAME} ${SBIN_DIR}
cp -r assembly/bin ${BIN_DIR} cp -r assembly/bin ${BIN_DIR}
cd ${BIN_DIR}/bin/ && mv load.sh load_${TARGET_EXEC_NAME}.sh && cd -
platform=$(uname)
# modify APPLICATION_NAME # modify APPLICATION_NAME
# OS=`uname` if [ ${platform} == "Darwin" ]; then
# if [[ $OS=="Darwin" ]]; then
if [ "$(uname)" == "Darwin" ]; then
sed -i "" "s~APPLICATION_NAME~${TARGET_EXEC_NAME}~g" ${BIN_DIR}/bin/* sed -i "" "s~APPLICATION_NAME~${TARGET_EXEC_NAME}~g" ${BIN_DIR}/bin/*
else else
sed -i "s~APPLICATION_NAME~${TARGET_EXEC_NAME}~g" ${BIN_DIR}/bin/* sed -i "s~APPLICATION_NAME~${TARGET_EXEC_NAME}~g" ${BIN_DIR}/bin/*
fi fi
# modify TARGET_CONF_FILE # modify TARGET_CONF_FILE
if [ "$(uname)" == "Darwin" ]; then if [ ${platform} == "Darwin" ]; then
sed -i "" "s~TARGET_CONF_FILE~${TARGET_CONF_FILE}~g" ${BIN_DIR}/bin/* sed -i "" "s~TARGET_CONF_FILE~${TARGET_CONF_FILE}~g" ${BIN_DIR}/bin/*
else else
sed -i "s~TARGET_CONF_FILE~${TARGET_CONF_FILE}~g" ${BIN_DIR}/bin/* sed -i "s~TARGET_CONF_FILE~${TARGET_CONF_FILE}~g" ${BIN_DIR}/bin/*
fi fi
# modify TARGET_LOG_CONF_FILE # modify TARGET_LOG_CONF_FILE
if [ "$(uname)" == "Darwin" ]; then if [ ${platform} == "Darwin" ]; then
sed -i "" "s~TARGET_LOG_CONF_FILE~${TARGET_LOG_CONF_FILE}~g" ${BIN_DIR}/bin/* sed -i "" "s~TARGET_LOG_CONF_FILE~${TARGET_LOG_CONF_FILE}~g" ${BIN_DIR}/bin/*
else else
sed -i "s~TARGET_LOG_CONF_FILE~${TARGET_LOG_CONF_FILE}~g" ${BIN_DIR}/bin/* sed -i "s~TARGET_LOG_CONF_FILE~${TARGET_LOG_CONF_FILE}~g" ${BIN_DIR}/bin/*
......
#!/usr/bin/env bash
# ******************************************************
# DESC : build script for release env
# AUTHOR : Alex Stocks
# VERSION : 1.0
# LICENCE : Apache License 2.0
# EMAIL : alexstocks@foxmail.com
# MOD : 2016-07-12 16:34
# FILE : test.sh
# ******************************************************
set -e
export GOOS=linux
export GOARCH=amd64
export PROFILE="release"
export PROJECT_HOME=`pwd`
if [ -f "${PROJECT_HOME}/assembly/common/app.properties" ]; then
. ${PROJECT_HOME}/assembly/common/app.properties
fi
if [ -f "${PROJECT_HOME}/assembly/common/build.sh" ]; then
sh ${PROJECT_HOME}/assembly/common/build.sh
fi
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
# DESC : build script for test env # DESC : build script for test env
# AUTHOR : Alex Stocks # AUTHOR : Alex Stocks
# VERSION : 1.0 # VERSION : 1.0
# LICENCE : LGPL V3 # LICENCE : Apache License 2.0
# EMAIL : alexstocks@foxmail.com # EMAIL : alexstocks@foxmail.com
# MOD : 2016-07-12 16:34 # MOD : 2016-07-12 16:34
# FILE : test.sh # FILE : test.sh
...@@ -15,15 +15,14 @@ set -e ...@@ -15,15 +15,14 @@ set -e
export GOOS=linux export GOOS=linux
export GOARCH=amd64 export GOARCH=amd64
PROFILE=test export PROFILE="test"
export PROJECT_HOME=`pwd`
PROJECT_HOME=`pwd`
if [ -f "${PROJECT_HOME}/assembly/common/app.properties" ]; then if [ -f "${PROJECT_HOME}/assembly/common/app.properties" ]; then
. ${PROJECT_HOME}/assembly/common/app.properties . ${PROJECT_HOME}/assembly/common/app.properties
fi fi
if [ -f "${PROJECT_HOME}/assembly/common/build.sh" ]; then if [ -f "${PROJECT_HOME}/assembly/common/build.sh" ]; then
. ${PROJECT_HOME}/assembly/common/build.sh sh ${PROJECT_HOME}/assembly/common/build.sh
fi fi
#!/usr/bin/env bash
# ******************************************************
# DESC : build script for release env
# AUTHOR : Alex Stocks
# VERSION : 1.0
# LICENCE : Apache License 2.0
# EMAIL : alexstocks@foxmail.com
# MOD : 2016-07-12 16:34
# FILE : test.sh
# ******************************************************
set -e
export GOOS=darwin
export GOARCH=amd64
export PROFILE="release"
export PROJECT_HOME=`pwd`
if [ -f "${PROJECT_HOME}/assembly/common/app.properties" ]; then
. ${PROJECT_HOME}/assembly/common/app.properties
fi
if [ -f "${PROJECT_HOME}/assembly/common/build.sh" ]; then
sh ${PROJECT_HOME}/assembly/common/build.sh
fi
...@@ -15,15 +15,14 @@ set -e ...@@ -15,15 +15,14 @@ set -e
export GOOS=darwin export GOOS=darwin
export GOARCH=amd64 export GOARCH=amd64
PROFILE=test export PROFILE="test"
export PROJECT_HOME=`pwd`
PROJECT_HOME=`pwd`
if [ -f "${PROJECT_HOME}/assembly/common/app.properties" ]; then if [ -f "${PROJECT_HOME}/assembly/common/app.properties" ]; then
. ${PROJECT_HOME}/assembly/common/app.properties . ${PROJECT_HOME}/assembly/common/app.properties
fi fi
if [ -f "${PROJECT_HOME}/assembly/common/build.sh" ]; then if [ -f "${PROJECT_HOME}/assembly/common/build.sh" ]; then
. ${PROJECT_HOME}/assembly/common/build.sh sh ${PROJECT_HOME}/assembly/common/build.sh
fi fi
#!/usr/bin/env bash
# ******************************************************
# DESC : build script for release env
# AUTHOR : Alex Stocks
# VERSION : 1.0
# LICENCE : Apache License 2.0
# EMAIL : alexstocks@foxmail.com
# MOD : 2016-07-12 16:34
# FILE : test.sh
# ******************************************************
set -e
export GOOS=windows
export GOARCH=amd64
export PROFILE="release"
export PROJECT_HOME=`pwd`
if [ -f "${PROJECT_HOME}/assembly/common/app.properties" ]; then
. ${PROJECT_HOME}/assembly/common/app.properties
fi
if [ -f "${PROJECT_HOME}/assembly/common/build.sh" ]; then
sh ${PROJECT_HOME}/assembly/common/build.sh
fi
...@@ -15,15 +15,13 @@ set -e ...@@ -15,15 +15,13 @@ set -e
export GOOS=windows export GOOS=windows
export GOARCH=amd64 export GOARCH=amd64
PROFILE=test export PROFILE="test"
export PROJECT_HOME=`pwd`
PROJECT_HOME=`pwd`
if [ -f "${PROJECT_HOME}/assembly/common/app.properties" ]; then if [ -f "${PROJECT_HOME}/assembly/common/app.properties" ]; then
. ${PROJECT_HOME}/assembly/common/app.properties . ${PROJECT_HOME}/assembly/common/app.properties
fi fi
if [ -f "${PROJECT_HOME}/assembly/common/build.sh" ]; then if [ -f "${PROJECT_HOME}/assembly/common/build.sh" ]; then
. ${PROJECT_HOME}/assembly/common/build.sh sh ${PROJECT_HOME}/assembly/common/build.sh
fi fi
...@@ -11,16 +11,22 @@ ...@@ -11,16 +11,22 @@
APP_NAME="APPLICATION_NAME" APP_NAME="APPLICATION_NAME"
APP_ARGS="" APP_ARGS=""
SLEEP_INTERVAL=5
MAX_LIFETIME=4000
PROJECT_HOME="" PROJECT_HOME=""
OS_NAME=`uname` OS_NAME=`uname`
if [[ ${OS_NAME} == "Linux" ]]; then if [[ ${OS_NAME} != "Windows" ]]; then
PROJECT_HOME=`pwd` PROJECT_HOME=`pwd`
PROJECT_HOME=${PROJECT_HOME}"/" PROJECT_HOME=${PROJECT_HOME}"/"
else
APP_NAME="APPLICATION_NAME.exe"
fi fi
export APP_CONF_FILE=${PROJECT_HOME}"TARGET_CONF_FILE" export APP_CONF_FILE=${PROJECT_HOME}"TARGET_CONF_FILE"
export APP_LOG_CONF_FILE=${PROJECT_HOME}"TARGET_LOG_CONF_FILE" export APP_LOG_CONF_FILE=${PROJECT_HOME}"TARGET_LOG_CONF_FILE"
# export GOTRACEBACK=system
# export GODEBUG=gctrace=1
usage() { usage() {
echo "Usage: $0 start" echo "Usage: $0 start"
...@@ -28,6 +34,8 @@ usage() { ...@@ -28,6 +34,8 @@ usage() {
echo " $0 term" echo " $0 term"
echo " $0 restart" echo " $0 restart"
echo " $0 list" echo " $0 list"
echo " $0 monitor"
echo " $0 crontab"
exit exit
} }
...@@ -40,21 +48,21 @@ start() { ...@@ -40,21 +48,21 @@ start() {
CMD="${APP_BIN}" CMD="${APP_BIN}"
eval ${CMD} eval ${CMD}
PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{print $2}'` PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{print $2}'`
if [[ ${OS_NAME} != "Linux" ]]; then if [[ ${OS_NAME} != "Linux" && ${OS_NAME} != "Darwin" ]]; then
PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{print $1}'` PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{print $1}'`
fi fi
if [ "${PID}" != "" ]; CUR=`date +%FT%T`
then if [ "${PID}" != "" ]; then
for p in ${PID} for p in ${PID}
do do
echo "start ${APP_NAME} ( pid =" ${p} ")" echo "start ${APP_NAME} ( pid =" ${p} ") at " ${CUR}
done done
fi fi
} }
stop() { stop() {
PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{print $2}'` PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{print $2}'`
if [[ ${OS_NAME} != "Linux" ]]; then if [[ ${OS_NAME} != "Linux" && ${OS_NAME} != "Darwin" ]]; then
PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{print $1}'` PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{print $1}'`
fi fi
if [ "${PID}" != "" ]; if [ "${PID}" != "" ];
...@@ -70,7 +78,7 @@ stop() { ...@@ -70,7 +78,7 @@ stop() {
term() { term() {
PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{print $2}'` PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{print $2}'`
if [[ ${OS_NAME} != "Linux" ]]; then if [[ ${OS_NAME} != "Linux" && ${OS_NAME} != "Darwin" ]]; then
PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{print $1}'` PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{print $1}'`
fi fi
if [ "${PID}" != "" ]; if [ "${PID}" != "" ];
...@@ -85,19 +93,18 @@ term() { ...@@ -85,19 +93,18 @@ term() {
list() { list() {
PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{printf("%s,%s,%s,%s\n", $1, $2, $9, $10)}'` PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{printf("%s,%s,%s,%s\n", $1, $2, $9, $10)}'`
if [[ ${OS_NAME} != "Linux" ]]; then if [[ ${OS_NAME} != "Linux" && ${OS_NAME} != "Darwin" ]]; then
PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{printf("%s,%s,%s,%s,%s\n", $1, $4, $6, $7, $8)}'` PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{printf("%s,%s,%s,%s,%s\n", $1, $4, $6, $7, $8)}'`
fi fi
if [ "${PID}" != "" ]; if [ "${PID}" != "" ]; then
then
echo "list ${APP_NAME}" echo "list ${APP_NAME}"
if [[ ${OS_NAME} == "Linux" ]]; then if [[ ${OS_NAME} == "Linux" || ${OS_NAME} == "Darwin" ]]; then
echo "index: user, pid, start, duration" echo "index: user, pid, start, duration"
else else
echo "index: PID, WINPID, UID, STIME, COMMAND" echo "index: PID, WINPID, UID, STIME, COMMAND"
fi fi
idx=0 idx=0
for ps in ${PID} for ps in ${PID}
do do
...@@ -107,6 +114,47 @@ list() { ...@@ -107,6 +114,47 @@ list() {
fi fi
} }
monitor() {
idx=0
while true; do
PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{print $2}'`
if [[ ${OS_NAME} != "Linux" && ${OS_NAME} != "Darwin" ]]; then
PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{print $1}'`
fi
if [[ "${PID}" == "" ]]; then
start
idx=0
fi
((LIFE=idx*${SLEEP_INTERVAL}))
echo "${APP_NAME} ( pid = " ${PID} ") has been working in normal state for " $LIFE " seconds."
((idx ++))
sleep ${SLEEP_INTERVAL}
done
}
crontab() {
idx=0
while true; do
PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{print $2}'`
if [[ ${OS_NAME} != "Linux" && ${OS_NAME} != "Darwin" ]]; then
PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{print $1}'`
fi
if [[ "${PID}" == "" ]]; then
start
idx=0
fi
((LIFE=idx*${SLEEP_INTERVAL}))
echo "${APP_NAME} ( pid = " ${PID} ") has been working in normal state for " $LIFE " seconds."
((idx ++))
sleep ${SLEEP_INTERVAL}
if [[ ${LIFE} -gt ${MAX_LIFETIME} ]]; then
kill -9 ${PID}
fi
done
}
opt=$1 opt=$1
case C"$opt" in case C"$opt" in
Cstart) Cstart)
...@@ -125,6 +173,12 @@ case C"$opt" in ...@@ -125,6 +173,12 @@ case C"$opt" in
Clist) Clist)
list list
;; ;;
Cmonitor)
monitor
;;
Ccrontab)
crontab
;;
C*) C*)
usage usage
;; ;;
......
...@@ -9,8 +9,9 @@ ...@@ -9,8 +9,9 @@
# FILE : app.properties # FILE : app.properties
# ****************************************************** # ******************************************************
TARGET_EXEC_NAME="echo_server" export TARGET_EXEC_NAME="echo_server"
BUILD_PACKAGE="app" export BUILD_PACKAGE="app"
export TARGET_CONF_FILE="conf/config.toml"
export TARGET_LOG_CONF_FILE="conf/log.xml"
TARGET_CONF_FILE="conf/config.toml"
TARGET_LOG_CONF_FILE="conf/log.xml"
...@@ -20,16 +20,16 @@ if [[ ${GOOS} == "windows" ]]; then ...@@ -20,16 +20,16 @@ if [[ ${GOOS} == "windows" ]]; then
TARGET_SBIN_NAME=${TARGET_SBIN_NAME}.exe TARGET_SBIN_NAME=${TARGET_SBIN_NAME}.exe
fi fi
TARGET_NAME=${TARGET_FOLDER}/${TARGET_SBIN_NAME} TARGET_NAME=${TARGET_FOLDER}/${TARGET_SBIN_NAME}
if [[ $PROFILE = "test" ]]; then if [[ $PROFILE == "dev" || $PROFILE == "test" ]]; then
# GFLAGS=-gcflags "-N -l" -race -x -v # -x会把go build的详细过程输出 # GFLAGS=-gcflags "-N -l" -race -x -v # -x会把go build的详细过程输出
# GFLAGS=-gcflags "-N -l" -race -v # GFLAGS=-gcflags "-N -l" -race -v
# GFLAGS="-gcflags \"-N -l\" -v" # GFLAGS="-gcflags \"-N -l\" -v"
cd ${BUILD_PACKAGE} && go build -gcflags "-N -l" -x -v -i -o ${TARGET_NAME} && cd - cd ${BUILD_PACKAGE} && GOOS=$GOOS GOARCH=$GOARCH go build -gcflags "-N -l" -x -v -i -o ${TARGET_NAME} && cd -
else else
# -s去掉符号表(然后panic时候的stack trace就没有任何文件名/行号信息了,这个等价于普通C/C++程序被strip的效果), # -s去掉符号表(然后panic时候的stack trace就没有任何文件名/行号信息了,这个等价于普通C/C++程序被strip的效果),
# -w去掉DWARF调试信息,得到的程序就不能用gdb调试了。-s和-w也可以分开使用,一般来说如果不打算用gdb调试, # -w去掉DWARF调试信息,得到的程序就不能用gdb调试了。-s和-w也可以分开使用,一般来说如果不打算用gdb调试,
# -w基本没啥损失。-s的损失就有点大了。 # -w基本没啥损失。-s的损失就有点大了。
cd ${BUILD_PACKAGE} && go build -ldflags "-w" -x -v -i -o ${TARGET_NAME} && cd - cd ${BUILD_PACKAGE} && GOOS=$GOOS GOARCH=$GOARCH go build -ldflags "-w" -x -v -i -o ${TARGET_NAME} && cd -
fi fi
TAR_NAME=${TARGET_EXEC_NAME}-${version}-`date "+%Y%m%d-%H%M"`-${PROFILE} TAR_NAME=${TARGET_EXEC_NAME}-${version}-`date "+%Y%m%d-%H%M"`-${PROFILE}
...@@ -45,22 +45,25 @@ mkdir -p ${CONF_DIR} ...@@ -45,22 +45,25 @@ mkdir -p ${CONF_DIR}
mv ${TARGET_NAME} ${SBIN_DIR} mv ${TARGET_NAME} ${SBIN_DIR}
cp -r assembly/bin ${BIN_DIR} cp -r assembly/bin ${BIN_DIR}
cd ${BIN_DIR}/bin/ && mv load.sh load_${TARGET_EXEC_NAME}.sh && cd -
platform=$(uname)
# modify APPLICATION_NAME # modify APPLICATION_NAME
if [ "$(uname)" == "Darwin" ]; then if [ ${platform} == "Darwin" ]; then
sed -i "" "s~APPLICATION_NAME~${TARGET_EXEC_NAME}~g" ${BIN_DIR}/bin/* sed -i "" "s~APPLICATION_NAME~${TARGET_EXEC_NAME}~g" ${BIN_DIR}/bin/*
else else
sed -i "s~APPLICATION_NAME~${TARGET_EXEC_NAME}~g" ${BIN_DIR}/bin/* sed -i "s~APPLICATION_NAME~${TARGET_EXEC_NAME}~g" ${BIN_DIR}/bin/*
fi fi
# modify TARGET_CONF_FILE # modify TARGET_CONF_FILE
if [ "$(uname)" == "Darwin" ]; then if [ ${platform} == "Darwin" ]; then
sed -i "" "s~TARGET_CONF_FILE~${TARGET_CONF_FILE}~g" ${BIN_DIR}/bin/* sed -i "" "s~TARGET_CONF_FILE~${TARGET_CONF_FILE}~g" ${BIN_DIR}/bin/*
else else
sed -i "s~TARGET_CONF_FILE~${TARGET_CONF_FILE}~g" ${BIN_DIR}/bin/* sed -i "s~TARGET_CONF_FILE~${TARGET_CONF_FILE}~g" ${BIN_DIR}/bin/*
fi fi
# modify TARGET_LOG_CONF_FILE
if [ "$(uname)" == "Darwin" ]; then # modify TARGET_LOG_CONF_FILE
if [ ${platform} == "Darwin" ]; then
sed -i "" "s~TARGET_LOG_CONF_FILE~${TARGET_LOG_CONF_FILE}~g" ${BIN_DIR}/bin/* sed -i "" "s~TARGET_LOG_CONF_FILE~${TARGET_LOG_CONF_FILE}~g" ${BIN_DIR}/bin/*
else else
sed -i "s~TARGET_LOG_CONF_FILE~${TARGET_LOG_CONF_FILE}~g" ${BIN_DIR}/bin/* sed -i "s~TARGET_LOG_CONF_FILE~${TARGET_LOG_CONF_FILE}~g" ${BIN_DIR}/bin/*
......
#!/usr/bin/env bash
# ******************************************************
# DESC : build script for release env
# AUTHOR : Alex Stocks
# VERSION : 1.0
# LICENCE : Apache License 2.0
# EMAIL : alexstocks@foxmail.com
# MOD : 2016-07-12 16:34
# FILE : test.sh
# ******************************************************
set -e
export GOOS=linux
export GOARCH=amd64
export PROFILE="release"
export PROJECT_HOME=`pwd`
if [ -f "${PROJECT_HOME}/assembly/common/app.properties" ]; then
. ${PROJECT_HOME}/assembly/common/app.properties
fi
if [ -f "${PROJECT_HOME}/assembly/common/build.sh" ]; then
sh ${PROJECT_HOME}/assembly/common/build.sh
fi
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
# DESC : build script for test env # DESC : build script for test env
# AUTHOR : Alex Stocks # AUTHOR : Alex Stocks
# VERSION : 1.0 # VERSION : 1.0
# LICENCE : LGPL V3 # LICENCE : Apache License 2.0
# EMAIL : alexstocks@foxmail.com # EMAIL : alexstocks@foxmail.com
# MOD : 2016-07-12 16:34 # MOD : 2016-07-12 16:34
# FILE : test.sh # FILE : test.sh
...@@ -15,15 +15,14 @@ set -e ...@@ -15,15 +15,14 @@ set -e
export GOOS=linux export GOOS=linux
export GOARCH=amd64 export GOARCH=amd64
PROFILE=test export PROFILE="test"
export PROJECT_HOME=`pwd`
PROJECT_HOME=`pwd`
if [ -f "${PROJECT_HOME}/assembly/common/app.properties" ]; then if [ -f "${PROJECT_HOME}/assembly/common/app.properties" ]; then
. ${PROJECT_HOME}/assembly/common/app.properties . ${PROJECT_HOME}/assembly/common/app.properties
fi fi
if [ -f "${PROJECT_HOME}/assembly/common/build.sh" ]; then if [ -f "${PROJECT_HOME}/assembly/common/build.sh" ]; then
. ${PROJECT_HOME}/assembly/common/build.sh sh ${PROJECT_HOME}/assembly/common/build.sh
fi fi
#!/usr/bin/env bash
# ******************************************************
# DESC : build script for release env
# AUTHOR : Alex Stocks
# VERSION : 1.0
# LICENCE : Apache License 2.0
# EMAIL : alexstocks@foxmail.com
# MOD : 2016-07-12 16:34
# FILE : test.sh
# ******************************************************
set -e
export GOOS=darwin
export GOARCH=amd64
export PROFILE="release"
export PROJECT_HOME=`pwd`
if [ -f "${PROJECT_HOME}/assembly/common/app.properties" ]; then
. ${PROJECT_HOME}/assembly/common/app.properties
fi
if [ -f "${PROJECT_HOME}/assembly/common/build.sh" ]; then
sh ${PROJECT_HOME}/assembly/common/build.sh
fi
...@@ -15,15 +15,14 @@ set -e ...@@ -15,15 +15,14 @@ set -e
export GOOS=darwin export GOOS=darwin
export GOARCH=amd64 export GOARCH=amd64
PROFILE=test export PROFILE="test"
export PROJECT_HOME=`pwd`
PROJECT_HOME=`pwd`
if [ -f "${PROJECT_HOME}/assembly/common/app.properties" ]; then if [ -f "${PROJECT_HOME}/assembly/common/app.properties" ]; then
. ${PROJECT_HOME}/assembly/common/app.properties . ${PROJECT_HOME}/assembly/common/app.properties
fi fi
if [ -f "${PROJECT_HOME}/assembly/common/build.sh" ]; then if [ -f "${PROJECT_HOME}/assembly/common/build.sh" ]; then
. ${PROJECT_HOME}/assembly/common/build.sh sh ${PROJECT_HOME}/assembly/common/build.sh
fi fi
#!/usr/bin/env bash
# ******************************************************
# DESC : build script for release env
# AUTHOR : Alex Stocks
# VERSION : 1.0
# LICENCE : Apache License 2.0
# EMAIL : alexstocks@foxmail.com
# MOD : 2016-07-12 16:34
# FILE : test.sh
# ******************************************************
set -e
export GOOS=windows
export GOARCH=amd64
export PROFILE="release"
export PROJECT_HOME=`pwd`
if [ -f "${PROJECT_HOME}/assembly/common/app.properties" ]; then
. ${PROJECT_HOME}/assembly/common/app.properties
fi
if [ -f "${PROJECT_HOME}/assembly/common/build.sh" ]; then
sh ${PROJECT_HOME}/assembly/common/build.sh
fi
...@@ -15,15 +15,14 @@ set -e ...@@ -15,15 +15,14 @@ set -e
export GOOS=windows export GOOS=windows
export GOARCH=amd64 export GOARCH=amd64
PROFILE=test export PROFILE="test"
export PROJECT_HOME=`pwd`
PROJECT_HOME=`pwd`
if [ -f "${PROJECT_HOME}/assembly/common/app.properties" ]; then if [ -f "${PROJECT_HOME}/assembly/common/app.properties" ]; then
. ${PROJECT_HOME}/assembly/common/app.properties . ${PROJECT_HOME}/assembly/common/app.properties
fi fi
if [ -f "${PROJECT_HOME}/assembly/common/build.sh" ]; then if [ -f "${PROJECT_HOME}/assembly/common/build.sh" ]; then
. ${PROJECT_HOME}/assembly/common/build.sh sh ${PROJECT_HOME}/assembly/common/build.sh
fi fi
...@@ -11,16 +11,22 @@ ...@@ -11,16 +11,22 @@
APP_NAME="APPLICATION_NAME" APP_NAME="APPLICATION_NAME"
APP_ARGS="" APP_ARGS=""
SLEEP_INTERVAL=5
MAX_LIFETIME=4000
PROJECT_HOME="" PROJECT_HOME=""
OS_NAME=`uname` OS_NAME=`uname`
if [[ ${OS_NAME} == "Linux" ]]; then if [[ ${OS_NAME} != "Windows" ]]; then
PROJECT_HOME=`pwd` PROJECT_HOME=`pwd`
PROJECT_HOME=${PROJECT_HOME}"/" PROJECT_HOME=${PROJECT_HOME}"/"
else
APP_NAME="APPLICATION_NAME.exe"
fi fi
export APP_CONF_FILE=${PROJECT_HOME}"TARGET_CONF_FILE" export APP_CONF_FILE=${PROJECT_HOME}"TARGET_CONF_FILE"
export APP_LOG_CONF_FILE=${PROJECT_HOME}"TARGET_LOG_CONF_FILE" export APP_LOG_CONF_FILE=${PROJECT_HOME}"TARGET_LOG_CONF_FILE"
# export GOTRACEBACK=system
# export GODEBUG=gctrace=1
usage() { usage() {
echo "Usage: $0 start" echo "Usage: $0 start"
...@@ -28,6 +34,8 @@ usage() { ...@@ -28,6 +34,8 @@ usage() {
echo " $0 term" echo " $0 term"
echo " $0 restart" echo " $0 restart"
echo " $0 list" echo " $0 list"
echo " $0 monitor"
echo " $0 crontab"
exit exit
} }
...@@ -40,21 +48,21 @@ start() { ...@@ -40,21 +48,21 @@ start() {
CMD="${APP_BIN}" CMD="${APP_BIN}"
eval ${CMD} eval ${CMD}
PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{print $2}'` PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{print $2}'`
if [[ ${OS_NAME} != "Linux" ]]; then if [[ ${OS_NAME} != "Linux" && ${OS_NAME} != "Darwin" ]]; then
PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{print $1}'` PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{print $1}'`
fi fi
if [ "${PID}" != "" ]; CUR=`date +%FT%T`
then if [ "${PID}" != "" ]; then
for p in ${PID} for p in ${PID}
do do
echo "start ${APP_NAME} ( pid =" ${p} ")" echo "start ${APP_NAME} ( pid =" ${p} ") at " ${CUR}
done done
fi fi
} }
stop() { stop() {
PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{print $2}'` PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{print $2}'`
if [[ ${OS_NAME} != "Linux" ]]; then if [[ ${OS_NAME} != "Linux" && ${OS_NAME} != "Darwin" ]]; then
PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{print $1}'` PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{print $1}'`
fi fi
if [ "${PID}" != "" ]; if [ "${PID}" != "" ];
...@@ -70,7 +78,7 @@ stop() { ...@@ -70,7 +78,7 @@ stop() {
term() { term() {
PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{print $2}'` PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{print $2}'`
if [[ ${OS_NAME} != "Linux" ]]; then if [[ ${OS_NAME} != "Linux" && ${OS_NAME} != "Darwin" ]]; then
PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{print $1}'` PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{print $1}'`
fi fi
if [ "${PID}" != "" ]; if [ "${PID}" != "" ];
...@@ -85,19 +93,18 @@ term() { ...@@ -85,19 +93,18 @@ term() {
list() { list() {
PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{printf("%s,%s,%s,%s\n", $1, $2, $9, $10)}'` PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{printf("%s,%s,%s,%s\n", $1, $2, $9, $10)}'`
if [[ ${OS_NAME} != "Linux" ]]; then if [[ ${OS_NAME} != "Linux" && ${OS_NAME} != "Darwin" ]]; then
PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{printf("%s,%s,%s,%s,%s\n", $1, $4, $6, $7, $8)}'` PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{printf("%s,%s,%s,%s,%s\n", $1, $4, $6, $7, $8)}'`
fi fi
if [ "${PID}" != "" ]; if [ "${PID}" != "" ]; then
then
echo "list ${APP_NAME}" echo "list ${APP_NAME}"
if [[ ${OS_NAME} == "Linux" ]]; then if [[ ${OS_NAME} == "Linux" || ${OS_NAME} == "Darwin" ]]; then
echo "index: user, pid, start, duration" echo "index: user, pid, start, duration"
else else
echo "index: PID, WINPID, UID, STIME, COMMAND" echo "index: PID, WINPID, UID, STIME, COMMAND"
fi fi
idx=0 idx=0
for ps in ${PID} for ps in ${PID}
do do
...@@ -107,6 +114,47 @@ list() { ...@@ -107,6 +114,47 @@ list() {
fi fi
} }
monitor() {
idx=0
while true; do
PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{print $2}'`
if [[ ${OS_NAME} != "Linux" && ${OS_NAME} != "Darwin" ]]; then
PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{print $1}'`
fi
if [[ "${PID}" == "" ]]; then
start
idx=0
fi
((LIFE=idx*${SLEEP_INTERVAL}))
echo "${APP_NAME} ( pid = " ${PID} ") has been working in normal state for " $LIFE " seconds."
((idx ++))
sleep ${SLEEP_INTERVAL}
done
}
crontab() {
idx=0
while true; do
PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{print $2}'`
if [[ ${OS_NAME} != "Linux" && ${OS_NAME} != "Darwin" ]]; then
PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{print $1}'`
fi
if [[ "${PID}" == "" ]]; then
start
idx=0
fi
((LIFE=idx*${SLEEP_INTERVAL}))
echo "${APP_NAME} ( pid = " ${PID} ") has been working in normal state for " $LIFE " seconds."
((idx ++))
sleep ${SLEEP_INTERVAL}
if [[ ${LIFE} -gt ${MAX_LIFETIME} ]]; then
kill -9 ${PID}
fi
done
}
opt=$1 opt=$1
case C"$opt" in case C"$opt" in
Cstart) Cstart)
...@@ -125,6 +173,12 @@ case C"$opt" in ...@@ -125,6 +173,12 @@ case C"$opt" in
Clist) Clist)
list list
;; ;;
Cmonitor)
monitor
;;
Ccrontab)
crontab
;;
C*) C*)
usage usage
;; ;;
......
...@@ -9,9 +9,9 @@ ...@@ -9,9 +9,9 @@
# FILE : app.properties # FILE : app.properties
# ****************************************************** # ******************************************************
TARGET_EXEC_NAME="echo_client" export TARGET_EXEC_NAME="echo_client"
BUILD_PACKAGE="app" export BUILD_PACKAGE="app"
TARGET_CONF_FILE="conf/config.toml" export TARGET_CONF_FILE="conf/config.toml"
TARGET_LOG_CONF_FILE="conf/log.xml" export TARGET_LOG_CONF_FILE="conf/log.xml"
...@@ -20,16 +20,16 @@ if [[ ${GOOS} == "windows" ]]; then ...@@ -20,16 +20,16 @@ if [[ ${GOOS} == "windows" ]]; then
TARGET_SBIN_NAME=${TARGET_SBIN_NAME}.exe TARGET_SBIN_NAME=${TARGET_SBIN_NAME}.exe
fi fi
TARGET_NAME=${TARGET_FOLDER}/${TARGET_SBIN_NAME} TARGET_NAME=${TARGET_FOLDER}/${TARGET_SBIN_NAME}
if [[ $PROFILE = "test" ]]; then if [[ $PROFILE == "dev" || $PROFILE == "test" ]]; then
# GFLAGS=-gcflags "-N -l" -race -x -v # -x会把go build的详细过程输出 # GFLAGS=-gcflags "-N -l" -race -x -v # -x会把go build的详细过程输出
# GFLAGS=-gcflags "-N -l" -race -v # GFLAGS=-gcflags "-N -l" -race -v
# GFLAGS="-gcflags \"-N -l\" -v" # GFLAGS="-gcflags \"-N -l\" -v"
cd ${BUILD_PACKAGE} && go build -gcflags "-N -l" -x -v -i -o ${TARGET_NAME} && cd - cd ${BUILD_PACKAGE} && GOOS=$GOOS GOARCH=$GOARCH go build -gcflags "-N -l" -x -v -i -o ${TARGET_NAME} && cd -
else else
# -s去掉符号表(然后panic时候的stack trace就没有任何文件名/行号信息了,这个等价于普通C/C++程序被strip的效果), # -s去掉符号表(然后panic时候的stack trace就没有任何文件名/行号信息了,这个等价于普通C/C++程序被strip的效果),
# -w去掉DWARF调试信息,得到的程序就不能用gdb调试了。-s和-w也可以分开使用,一般来说如果不打算用gdb调试, # -w去掉DWARF调试信息,得到的程序就不能用gdb调试了。-s和-w也可以分开使用,一般来说如果不打算用gdb调试,
# -w基本没啥损失。-s的损失就有点大了。 # -w基本没啥损失。-s的损失就有点大了。
cd ${BUILD_PACKAGE} && go build -ldflags "-w" -x -v -i -o ${TARGET_NAME} && cd - cd ${BUILD_PACKAGE} && GOOS=$GOOS GOARCH=$GOARCH go build -ldflags "-w" -x -v -i -o ${TARGET_NAME} && cd -
fi fi
TAR_NAME=${TARGET_EXEC_NAME}-${version}-`date "+%Y%m%d-%H%M"`-${PROFILE} TAR_NAME=${TARGET_EXEC_NAME}-${version}-`date "+%Y%m%d-%H%M"`-${PROFILE}
...@@ -45,22 +45,25 @@ mkdir -p ${CONF_DIR} ...@@ -45,22 +45,25 @@ mkdir -p ${CONF_DIR}
mv ${TARGET_NAME} ${SBIN_DIR} mv ${TARGET_NAME} ${SBIN_DIR}
cp -r assembly/bin ${BIN_DIR} cp -r assembly/bin ${BIN_DIR}
cd ${BIN_DIR}/bin/ && mv load.sh load_${TARGET_EXEC_NAME}.sh && cd -
platform=$(uname)
# modify APPLICATION_NAME # modify APPLICATION_NAME
if [ "$(uname)" == "Darwin" ]; then if [ ${platform} == "Darwin" ]; then
sed -i "" "s~APPLICATION_NAME~${TARGET_EXEC_NAME}~g" ${BIN_DIR}/bin/* sed -i "" "s~APPLICATION_NAME~${TARGET_EXEC_NAME}~g" ${BIN_DIR}/bin/*
else else
sed -i "s~APPLICATION_NAME~${TARGET_EXEC_NAME}~g" ${BIN_DIR}/bin/* sed -i "s~APPLICATION_NAME~${TARGET_EXEC_NAME}~g" ${BIN_DIR}/bin/*
fi fi
# modify TARGET_CONF_FILE # modify TARGET_CONF_FILE
if [ "$(uname)" == "Darwin" ]; then if [ ${platform} == "Darwin" ]; then
sed -i "" "s~TARGET_CONF_FILE~${TARGET_CONF_FILE}~g" ${BIN_DIR}/bin/* sed -i "" "s~TARGET_CONF_FILE~${TARGET_CONF_FILE}~g" ${BIN_DIR}/bin/*
else else
sed -i "s~TARGET_CONF_FILE~${TARGET_CONF_FILE}~g" ${BIN_DIR}/bin/* sed -i "s~TARGET_CONF_FILE~${TARGET_CONF_FILE}~g" ${BIN_DIR}/bin/*
fi fi
# modify TARGET_LOG_CONF_FILE # modify TARGET_LOG_CONF_FILE
if [ "$(uname)" == "Darwin" ]; then if [ ${platform} == "Darwin" ]; then
sed -i "" "s~TARGET_LOG_CONF_FILE~${TARGET_LOG_CONF_FILE}~g" ${BIN_DIR}/bin/* sed -i "" "s~TARGET_LOG_CONF_FILE~${TARGET_LOG_CONF_FILE}~g" ${BIN_DIR}/bin/*
else else
sed -i "s~TARGET_LOG_CONF_FILE~${TARGET_LOG_CONF_FILE}~g" ${BIN_DIR}/bin/* sed -i "s~TARGET_LOG_CONF_FILE~${TARGET_LOG_CONF_FILE}~g" ${BIN_DIR}/bin/*
......
#!/usr/bin/env bash
# ******************************************************
# DESC : build script for release env
# AUTHOR : Alex Stocks
# VERSION : 1.0
# LICENCE : Apache License 2.0
# EMAIL : alexstocks@foxmail.com
# MOD : 2016-07-12 16:34
# FILE : test.sh
# ******************************************************
set -e
export GOOS=linux
export GOARCH=amd64
export PROFILE="release"
export PROJECT_HOME=`pwd`
if [ -f "${PROJECT_HOME}/assembly/common/app.properties" ]; then
. ${PROJECT_HOME}/assembly/common/app.properties
fi
if [ -f "${PROJECT_HOME}/assembly/common/build.sh" ]; then
sh ${PROJECT_HOME}/assembly/common/build.sh
fi
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
# DESC : build script for test env # DESC : build script for test env
# AUTHOR : Alex Stocks # AUTHOR : Alex Stocks
# VERSION : 1.0 # VERSION : 1.0
# LICENCE : LGPL V3 # LICENCE : Apache License 2.0
# EMAIL : alexstocks@foxmail.com # EMAIL : alexstocks@foxmail.com
# MOD : 2016-07-12 16:34 # MOD : 2016-07-12 16:34
# FILE : test.sh # FILE : test.sh
...@@ -15,15 +15,14 @@ set -e ...@@ -15,15 +15,14 @@ set -e
export GOOS=linux export GOOS=linux
export GOARCH=amd64 export GOARCH=amd64
PROFILE=test export PROFILE="test"
export PROJECT_HOME=`pwd`
PROJECT_HOME=`pwd`
if [ -f "${PROJECT_HOME}/assembly/common/app.properties" ]; then if [ -f "${PROJECT_HOME}/assembly/common/app.properties" ]; then
. ${PROJECT_HOME}/assembly/common/app.properties . ${PROJECT_HOME}/assembly/common/app.properties
fi fi
if [ -f "${PROJECT_HOME}/assembly/common/build.sh" ]; then if [ -f "${PROJECT_HOME}/assembly/common/build.sh" ]; then
. ${PROJECT_HOME}/assembly/common/build.sh sh ${PROJECT_HOME}/assembly/common/build.sh
fi fi
#!/usr/bin/env bash
# ******************************************************
# DESC : build script for release env
# AUTHOR : Alex Stocks
# VERSION : 1.0
# LICENCE : Apache License 2.0
# EMAIL : alexstocks@foxmail.com
# MOD : 2016-07-12 16:34
# FILE : test.sh
# ******************************************************
set -e
export GOOS=darwin
export GOARCH=amd64
export PROFILE="release"
export PROJECT_HOME=`pwd`
if [ -f "${PROJECT_HOME}/assembly/common/app.properties" ]; then
. ${PROJECT_HOME}/assembly/common/app.properties
fi
if [ -f "${PROJECT_HOME}/assembly/common/build.sh" ]; then
sh ${PROJECT_HOME}/assembly/common/build.sh
fi
...@@ -15,15 +15,14 @@ set -e ...@@ -15,15 +15,14 @@ set -e
export GOOS=darwin export GOOS=darwin
export GOARCH=amd64 export GOARCH=amd64
PROFILE=test export PROFILE="test"
export PROJECT_HOME=`pwd`
PROJECT_HOME=`pwd`
if [ -f "${PROJECT_HOME}/assembly/common/app.properties" ]; then if [ -f "${PROJECT_HOME}/assembly/common/app.properties" ]; then
. ${PROJECT_HOME}/assembly/common/app.properties . ${PROJECT_HOME}/assembly/common/app.properties
fi fi
if [ -f "${PROJECT_HOME}/assembly/common/build.sh" ]; then if [ -f "${PROJECT_HOME}/assembly/common/build.sh" ]; then
. ${PROJECT_HOME}/assembly/common/build.sh sh ${PROJECT_HOME}/assembly/common/build.sh
fi fi
#!/usr/bin/env bash
# ******************************************************
# DESC : build script for release env
# AUTHOR : Alex Stocks
# VERSION : 1.0
# LICENCE : Apache License 2.0
# EMAIL : alexstocks@foxmail.com
# MOD : 2016-07-12 16:34
# FILE : test.sh
# ******************************************************
set -e
export GOOS=windows
export GOARCH=amd64
export PROFILE="release"
export PROJECT_HOME=`pwd`
if [ -f "${PROJECT_HOME}/assembly/common/app.properties" ]; then
. ${PROJECT_HOME}/assembly/common/app.properties
fi
if [ -f "${PROJECT_HOME}/assembly/common/build.sh" ]; then
sh ${PROJECT_HOME}/assembly/common/build.sh
fi
...@@ -15,15 +15,13 @@ set -e ...@@ -15,15 +15,13 @@ set -e
export GOOS=windows export GOOS=windows
export GOARCH=amd64 export GOARCH=amd64
PROFILE=test export PROFILE="test"
export PROJECT_HOME=`pwd`
PROJECT_HOME=`pwd`
if [ -f "${PROJECT_HOME}/assembly/common/app.properties" ]; then if [ -f "${PROJECT_HOME}/assembly/common/app.properties" ]; then
. ${PROJECT_HOME}/assembly/common/app.properties . ${PROJECT_HOME}/assembly/common/app.properties
fi fi
if [ -f "${PROJECT_HOME}/assembly/common/build.sh" ]; then if [ -f "${PROJECT_HOME}/assembly/common/build.sh" ]; then
. ${PROJECT_HOME}/assembly/common/build.sh sh ${PROJECT_HOME}/assembly/common/build.sh
fi fi
...@@ -11,16 +11,22 @@ ...@@ -11,16 +11,22 @@
APP_NAME="APPLICATION_NAME" APP_NAME="APPLICATION_NAME"
APP_ARGS="" APP_ARGS=""
SLEEP_INTERVAL=5
MAX_LIFETIME=4000
PROJECT_HOME="" PROJECT_HOME=""
OS_NAME=`uname` OS_NAME=`uname`
if [[ ${OS_NAME} == "Linux" ]]; then if [[ ${OS_NAME} != "Windows" ]]; then
PROJECT_HOME=`pwd` PROJECT_HOME=`pwd`
PROJECT_HOME=${PROJECT_HOME}"/" PROJECT_HOME=${PROJECT_HOME}"/"
else
APP_NAME="APPLICATION_NAME.exe"
fi fi
export APP_CONF_FILE=${PROJECT_HOME}"TARGET_CONF_FILE" export APP_CONF_FILE=${PROJECT_HOME}"TARGET_CONF_FILE"
export APP_LOG_CONF_FILE=${PROJECT_HOME}"TARGET_LOG_CONF_FILE" export APP_LOG_CONF_FILE=${PROJECT_HOME}"TARGET_LOG_CONF_FILE"
# export GOTRACEBACK=system
# export GODEBUG=gctrace=1
usage() { usage() {
echo "Usage: $0 start" echo "Usage: $0 start"
...@@ -28,6 +34,8 @@ usage() { ...@@ -28,6 +34,8 @@ usage() {
echo " $0 term" echo " $0 term"
echo " $0 restart" echo " $0 restart"
echo " $0 list" echo " $0 list"
echo " $0 monitor"
echo " $0 crontab"
exit exit
} }
...@@ -40,21 +48,21 @@ start() { ...@@ -40,21 +48,21 @@ start() {
CMD="${APP_BIN}" CMD="${APP_BIN}"
eval ${CMD} eval ${CMD}
PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{print $2}'` PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{print $2}'`
if [[ ${OS_NAME} != "Linux" ]]; then if [[ ${OS_NAME} != "Linux" && ${OS_NAME} != "Darwin" ]]; then
PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{print $1}'` PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{print $1}'`
fi fi
if [ "${PID}" != "" ]; CUR=`date +%FT%T`
then if [ "${PID}" != "" ]; then
for p in ${PID} for p in ${PID}
do do
echo "start ${APP_NAME} ( pid =" ${p} ")" echo "start ${APP_NAME} ( pid =" ${p} ") at " ${CUR}
done done
fi fi
} }
stop() { stop() {
PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{print $2}'` PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{print $2}'`
if [[ ${OS_NAME} != "Linux" ]]; then if [[ ${OS_NAME} != "Linux" && ${OS_NAME} != "Darwin" ]]; then
PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{print $1}'` PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{print $1}'`
fi fi
if [ "${PID}" != "" ]; if [ "${PID}" != "" ];
...@@ -70,7 +78,7 @@ stop() { ...@@ -70,7 +78,7 @@ stop() {
term() { term() {
PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{print $2}'` PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{print $2}'`
if [[ ${OS_NAME} != "Linux" ]]; then if [[ ${OS_NAME} != "Linux" && ${OS_NAME} != "Darwin" ]]; then
PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{print $1}'` PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{print $1}'`
fi fi
if [ "${PID}" != "" ]; if [ "${PID}" != "" ];
...@@ -85,19 +93,18 @@ term() { ...@@ -85,19 +93,18 @@ term() {
list() { list() {
PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{printf("%s,%s,%s,%s\n", $1, $2, $9, $10)}'` PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{printf("%s,%s,%s,%s\n", $1, $2, $9, $10)}'`
if [[ ${OS_NAME} != "Linux" ]]; then if [[ ${OS_NAME} != "Linux" && ${OS_NAME} != "Darwin" ]]; then
PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{printf("%s,%s,%s,%s,%s\n", $1, $4, $6, $7, $8)}'` PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{printf("%s,%s,%s,%s,%s\n", $1, $4, $6, $7, $8)}'`
fi fi
if [ "${PID}" != "" ]; if [ "${PID}" != "" ]; then
then
echo "list ${APP_NAME}" echo "list ${APP_NAME}"
if [[ ${OS_NAME} == "Linux" ]]; then if [[ ${OS_NAME} == "Linux" || ${OS_NAME} == "Darwin" ]]; then
echo "index: user, pid, start, duration" echo "index: user, pid, start, duration"
else else
echo "index: PID, WINPID, UID, STIME, COMMAND" echo "index: PID, WINPID, UID, STIME, COMMAND"
fi fi
idx=0 idx=0
for ps in ${PID} for ps in ${PID}
do do
...@@ -107,6 +114,47 @@ list() { ...@@ -107,6 +114,47 @@ list() {
fi fi
} }
monitor() {
idx=0
while true; do
PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{print $2}'`
if [[ ${OS_NAME} != "Linux" && ${OS_NAME} != "Darwin" ]]; then
PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{print $1}'`
fi
if [[ "${PID}" == "" ]]; then
start
idx=0
fi
((LIFE=idx*${SLEEP_INTERVAL}))
echo "${APP_NAME} ( pid = " ${PID} ") has been working in normal state for " $LIFE " seconds."
((idx ++))
sleep ${SLEEP_INTERVAL}
done
}
crontab() {
idx=0
while true; do
PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{print $2}'`
if [[ ${OS_NAME} != "Linux" && ${OS_NAME} != "Darwin" ]]; then
PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{print $1}'`
fi
if [[ "${PID}" == "" ]]; then
start
idx=0
fi
((LIFE=idx*${SLEEP_INTERVAL}))
echo "${APP_NAME} ( pid = " ${PID} ") has been working in normal state for " $LIFE " seconds."
((idx ++))
sleep ${SLEEP_INTERVAL}
if [[ ${LIFE} -gt ${MAX_LIFETIME} ]]; then
kill -9 ${PID}
fi
done
}
opt=$1 opt=$1
case C"$opt" in case C"$opt" in
Cstart) Cstart)
...@@ -125,6 +173,12 @@ case C"$opt" in ...@@ -125,6 +173,12 @@ case C"$opt" in
Clist) Clist)
list list
;; ;;
Cmonitor)
monitor
;;
Ccrontab)
crontab
;;
C*) C*)
usage usage
;; ;;
......
...@@ -9,8 +9,9 @@ ...@@ -9,8 +9,9 @@
# FILE : app.properties # FILE : app.properties
# ****************************************************** # ******************************************************
TARGET_EXEC_NAME="echo_server" export TARGET_EXEC_NAME="echo_server"
BUILD_PACKAGE="app" export BUILD_PACKAGE="app"
export TARGET_CONF_FILE="conf/config.toml"
export TARGET_LOG_CONF_FILE="conf/log.xml"
TARGET_CONF_FILE="conf/config.toml"
TARGET_LOG_CONF_FILE="conf/log.xml"
...@@ -20,16 +20,16 @@ if [[ ${GOOS} == "windows" ]]; then ...@@ -20,16 +20,16 @@ if [[ ${GOOS} == "windows" ]]; then
TARGET_SBIN_NAME=${TARGET_SBIN_NAME}.exe TARGET_SBIN_NAME=${TARGET_SBIN_NAME}.exe
fi fi
TARGET_NAME=${TARGET_FOLDER}/${TARGET_SBIN_NAME} TARGET_NAME=${TARGET_FOLDER}/${TARGET_SBIN_NAME}
if [[ $PROFILE = "test" ]]; then if [[ $PROFILE == "dev" || $PROFILE == "test" ]]; then
# GFLAGS=-gcflags "-N -l" -race -x -v # -x会把go build的详细过程输出 # GFLAGS=-gcflags "-N -l" -race -x -v # -x会把go build的详细过程输出
# GFLAGS=-gcflags "-N -l" -race -v # GFLAGS=-gcflags "-N -l" -race -v
# GFLAGS="-gcflags \"-N -l\" -v" # GFLAGS="-gcflags \"-N -l\" -v"
cd ${BUILD_PACKAGE} && go build -gcflags "-N -l" -x -v -i -o ${TARGET_NAME} && cd - cd ${BUILD_PACKAGE} && GOOS=$GOOS GOARCH=$GOARCH go build -gcflags "-N -l" -x -v -i -o ${TARGET_NAME} && cd -
else else
# -s去掉符号表(然后panic时候的stack trace就没有任何文件名/行号信息了,这个等价于普通C/C++程序被strip的效果), # -s去掉符号表(然后panic时候的stack trace就没有任何文件名/行号信息了,这个等价于普通C/C++程序被strip的效果),
# -w去掉DWARF调试信息,得到的程序就不能用gdb调试了。-s和-w也可以分开使用,一般来说如果不打算用gdb调试, # -w去掉DWARF调试信息,得到的程序就不能用gdb调试了。-s和-w也可以分开使用,一般来说如果不打算用gdb调试,
# -w基本没啥损失。-s的损失就有点大了。 # -w基本没啥损失。-s的损失就有点大了。
cd ${BUILD_PACKAGE} && go build -ldflags "-w" -x -v -i -o ${TARGET_NAME} && cd - cd ${BUILD_PACKAGE} && GOOS=$GOOS GOARCH=$GOARCH go build -ldflags "-w" -x -v -i -o ${TARGET_NAME} && cd -
fi fi
TAR_NAME=${TARGET_EXEC_NAME}-${version}-`date "+%Y%m%d-%H%M"`-${PROFILE} TAR_NAME=${TARGET_EXEC_NAME}-${version}-`date "+%Y%m%d-%H%M"`-${PROFILE}
...@@ -45,23 +45,25 @@ mkdir -p ${CONF_DIR} ...@@ -45,23 +45,25 @@ mkdir -p ${CONF_DIR}
mv ${TARGET_NAME} ${SBIN_DIR} mv ${TARGET_NAME} ${SBIN_DIR}
cp -r assembly/bin ${BIN_DIR} cp -r assembly/bin ${BIN_DIR}
cd ${BIN_DIR}/bin/ && mv load.sh load_${TARGET_EXEC_NAME}.sh && cd -
platform=$(uname)
# modify APPLICATION_NAME # modify APPLICATION_NAME
if [ "$(uname)" == "Darwin" ]; then if [ ${platform} == "Darwin" ]; then
sed -i "" "s~APPLICATION_NAME~${TARGET_EXEC_NAME}~g" ${BIN_DIR}/bin/* sed -i "" "s~APPLICATION_NAME~${TARGET_EXEC_NAME}~g" ${BIN_DIR}/bin/*
else else
sed -i "s~APPLICATION_NAME~${TARGET_EXEC_NAME}~g" ${BIN_DIR}/bin/* sed -i "s~APPLICATION_NAME~${TARGET_EXEC_NAME}~g" ${BIN_DIR}/bin/*
fi fi
# modify TARGET_CONF_FILE # modify TARGET_CONF_FILE
if [ "$(uname)" == "Darwin" ]; then if [ ${platform} == "Darwin" ]; then
sed -i "" "s~TARGET_CONF_FILE~${TARGET_CONF_FILE}~g" ${BIN_DIR}/bin/* sed -i "" "s~TARGET_CONF_FILE~${TARGET_CONF_FILE}~g" ${BIN_DIR}/bin/*
else else
sed -i "s~TARGET_CONF_FILE~${TARGET_CONF_FILE}~g" ${BIN_DIR}/bin/* sed -i "s~TARGET_CONF_FILE~${TARGET_CONF_FILE}~g" ${BIN_DIR}/bin/*
fi fi
# modify TARGET_LOG_CONF_FILE # modify TARGET_LOG_CONF_FILE
if [ "$(uname)" == "Darwin" ]; then if [ ${platform} == "Darwin" ]; then
sed -i "" "s~TARGET_LOG_CONF_FILE~${TARGET_LOG_CONF_FILE}~g" ${BIN_DIR}/bin/* sed -i "" "s~TARGET_LOG_CONF_FILE~${TARGET_LOG_CONF_FILE}~g" ${BIN_DIR}/bin/*
else else
sed -i "s~TARGET_LOG_CONF_FILE~${TARGET_LOG_CONF_FILE}~g" ${BIN_DIR}/bin/* sed -i "s~TARGET_LOG_CONF_FILE~${TARGET_LOG_CONF_FILE}~g" ${BIN_DIR}/bin/*
......
#!/usr/bin/env bash
# ******************************************************
# DESC : build script for release env
# AUTHOR : Alex Stocks
# VERSION : 1.0
# LICENCE : Apache License 2.0
# EMAIL : alexstocks@foxmail.com
# MOD : 2016-07-12 16:34
# FILE : test.sh
# ******************************************************
set -e
export GOOS=linux
export GOARCH=amd64
export PROFILE="release"
export PROJECT_HOME=`pwd`
if [ -f "${PROJECT_HOME}/assembly/common/app.properties" ]; then
. ${PROJECT_HOME}/assembly/common/app.properties
fi
if [ -f "${PROJECT_HOME}/assembly/common/build.sh" ]; then
sh ${PROJECT_HOME}/assembly/common/build.sh
fi
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
# DESC : build script for test env # DESC : build script for test env
# AUTHOR : Alex Stocks # AUTHOR : Alex Stocks
# VERSION : 1.0 # VERSION : 1.0
# LICENCE : LGPL V3 # LICENCE : Apache License 2.0
# EMAIL : alexstocks@foxmail.com # EMAIL : alexstocks@foxmail.com
# MOD : 2016-07-12 16:34 # MOD : 2016-07-12 16:34
# FILE : test.sh # FILE : test.sh
...@@ -15,15 +15,14 @@ set -e ...@@ -15,15 +15,14 @@ set -e
export GOOS=linux export GOOS=linux
export GOARCH=amd64 export GOARCH=amd64
PROFILE=test export PROFILE="test"
export PROJECT_HOME=`pwd`
PROJECT_HOME=`pwd`
if [ -f "${PROJECT_HOME}/assembly/common/app.properties" ]; then if [ -f "${PROJECT_HOME}/assembly/common/app.properties" ]; then
. ${PROJECT_HOME}/assembly/common/app.properties . ${PROJECT_HOME}/assembly/common/app.properties
fi fi
if [ -f "${PROJECT_HOME}/assembly/common/build.sh" ]; then if [ -f "${PROJECT_HOME}/assembly/common/build.sh" ]; then
. ${PROJECT_HOME}/assembly/common/build.sh sh ${PROJECT_HOME}/assembly/common/build.sh
fi fi
#!/usr/bin/env bash
# ******************************************************
# DESC : build script for release env
# AUTHOR : Alex Stocks
# VERSION : 1.0
# LICENCE : Apache License 2.0
# EMAIL : alexstocks@foxmail.com
# MOD : 2016-07-12 16:34
# FILE : test.sh
# ******************************************************
set -e
export GOOS=darwin
export GOARCH=amd64
export PROFILE="release"
export PROJECT_HOME=`pwd`
if [ -f "${PROJECT_HOME}/assembly/common/app.properties" ]; then
. ${PROJECT_HOME}/assembly/common/app.properties
fi
if [ -f "${PROJECT_HOME}/assembly/common/build.sh" ]; then
sh ${PROJECT_HOME}/assembly/common/build.sh
fi
...@@ -15,15 +15,14 @@ set -e ...@@ -15,15 +15,14 @@ set -e
export GOOS=darwin export GOOS=darwin
export GOARCH=amd64 export GOARCH=amd64
PROFILE=test export PROFILE="test"
export PROJECT_HOME=`pwd`
PROJECT_HOME=`pwd`
if [ -f "${PROJECT_HOME}/assembly/common/app.properties" ]; then if [ -f "${PROJECT_HOME}/assembly/common/app.properties" ]; then
. ${PROJECT_HOME}/assembly/common/app.properties . ${PROJECT_HOME}/assembly/common/app.properties
fi fi
if [ -f "${PROJECT_HOME}/assembly/common/build.sh" ]; then if [ -f "${PROJECT_HOME}/assembly/common/build.sh" ]; then
. ${PROJECT_HOME}/assembly/common/build.sh sh ${PROJECT_HOME}/assembly/common/build.sh
fi fi
#!/usr/bin/env bash
# ******************************************************
# DESC : build script for release env
# AUTHOR : Alex Stocks
# VERSION : 1.0
# LICENCE : Apache License 2.0
# EMAIL : alexstocks@foxmail.com
# MOD : 2016-07-12 16:34
# FILE : test.sh
# ******************************************************
set -e
export GOOS=windows
export GOARCH=amd64
export PROFILE="release"
export PROJECT_HOME=`pwd`
if [ -f "${PROJECT_HOME}/assembly/common/app.properties" ]; then
. ${PROJECT_HOME}/assembly/common/app.properties
fi
if [ -f "${PROJECT_HOME}/assembly/common/build.sh" ]; then
sh ${PROJECT_HOME}/assembly/common/build.sh
fi
...@@ -15,15 +15,14 @@ set -e ...@@ -15,15 +15,14 @@ set -e
export GOOS=windows export GOOS=windows
export GOARCH=amd64 export GOARCH=amd64
PROFILE=test export PROFILE="test"
export PROJECT_HOME=`pwd`
PROJECT_HOME=`pwd`
if [ -f "${PROJECT_HOME}/assembly/common/app.properties" ]; then if [ -f "${PROJECT_HOME}/assembly/common/app.properties" ]; then
. ${PROJECT_HOME}/assembly/common/app.properties . ${PROJECT_HOME}/assembly/common/app.properties
fi fi
if [ -f "${PROJECT_HOME}/assembly/common/build.sh" ]; then if [ -f "${PROJECT_HOME}/assembly/common/build.sh" ]; then
. ${PROJECT_HOME}/assembly/common/build.sh sh ${PROJECT_HOME}/assembly/common/build.sh
fi fi
...@@ -11,16 +11,22 @@ ...@@ -11,16 +11,22 @@
APP_NAME="APPLICATION_NAME" APP_NAME="APPLICATION_NAME"
APP_ARGS="" APP_ARGS=""
SLEEP_INTERVAL=5
MAX_LIFETIME=4000
PROJECT_HOME="" PROJECT_HOME=""
OS_NAME=`uname` OS_NAME=`uname`
if [[ ${OS_NAME} == "Linux" ]]; then if [[ ${OS_NAME} != "Windows" ]]; then
PROJECT_HOME=`pwd` PROJECT_HOME=`pwd`
PROJECT_HOME=${PROJECT_HOME}"/" PROJECT_HOME=${PROJECT_HOME}"/"
else
APP_NAME="APPLICATION_NAME.exe"
fi fi
export APP_CONF_FILE=${PROJECT_HOME}"TARGET_CONF_FILE" export APP_CONF_FILE=${PROJECT_HOME}"TARGET_CONF_FILE"
export APP_LOG_CONF_FILE=${PROJECT_HOME}"TARGET_LOG_CONF_FILE" export APP_LOG_CONF_FILE=${PROJECT_HOME}"TARGET_LOG_CONF_FILE"
# export GOTRACEBACK=system
# export GODEBUG=gctrace=1
usage() { usage() {
echo "Usage: $0 start" echo "Usage: $0 start"
...@@ -28,6 +34,8 @@ usage() { ...@@ -28,6 +34,8 @@ usage() {
echo " $0 term" echo " $0 term"
echo " $0 restart" echo " $0 restart"
echo " $0 list" echo " $0 list"
echo " $0 monitor"
echo " $0 crontab"
exit exit
} }
...@@ -40,21 +48,21 @@ start() { ...@@ -40,21 +48,21 @@ start() {
CMD="${APP_BIN}" CMD="${APP_BIN}"
eval ${CMD} eval ${CMD}
PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{print $2}'` PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{print $2}'`
if [[ ${OS_NAME} != "Linux" ]]; then if [[ ${OS_NAME} != "Linux" && ${OS_NAME} != "Darwin" ]]; then
PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{print $1}'` PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{print $1}'`
fi fi
if [ "${PID}" != "" ]; CUR=`date +%FT%T`
then if [ "${PID}" != "" ]; then
for p in ${PID} for p in ${PID}
do do
echo "start ${APP_NAME} ( pid =" ${p} ")" echo "start ${APP_NAME} ( pid =" ${p} ") at " ${CUR}
done done
fi fi
} }
stop() { stop() {
PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{print $2}'` PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{print $2}'`
if [[ ${OS_NAME} != "Linux" ]]; then if [[ ${OS_NAME} != "Linux" && ${OS_NAME} != "Darwin" ]]; then
PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{print $1}'` PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{print $1}'`
fi fi
if [ "${PID}" != "" ]; if [ "${PID}" != "" ];
...@@ -70,7 +78,7 @@ stop() { ...@@ -70,7 +78,7 @@ stop() {
term() { term() {
PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{print $2}'` PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{print $2}'`
if [[ ${OS_NAME} != "Linux" ]]; then if [[ ${OS_NAME} != "Linux" && ${OS_NAME} != "Darwin" ]]; then
PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{print $1}'` PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{print $1}'`
fi fi
if [ "${PID}" != "" ]; if [ "${PID}" != "" ];
...@@ -85,19 +93,18 @@ term() { ...@@ -85,19 +93,18 @@ term() {
list() { list() {
PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{printf("%s,%s,%s,%s\n", $1, $2, $9, $10)}'` PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{printf("%s,%s,%s,%s\n", $1, $2, $9, $10)}'`
if [[ ${OS_NAME} != "Linux" ]]; then if [[ ${OS_NAME} != "Linux" && ${OS_NAME} != "Darwin" ]]; then
PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{printf("%s,%s,%s,%s,%s\n", $1, $4, $6, $7, $8)}'` PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{printf("%s,%s,%s,%s,%s\n", $1, $4, $6, $7, $8)}'`
fi fi
if [ "${PID}" != "" ]; if [ "${PID}" != "" ]; then
then
echo "list ${APP_NAME}" echo "list ${APP_NAME}"
if [[ ${OS_NAME} == "Linux" ]]; then if [[ ${OS_NAME} == "Linux" || ${OS_NAME} == "Darwin" ]]; then
echo "index: user, pid, start, duration" echo "index: user, pid, start, duration"
else else
echo "index: PID, WINPID, UID, STIME, COMMAND" echo "index: PID, WINPID, UID, STIME, COMMAND"
fi fi
idx=0 idx=0
for ps in ${PID} for ps in ${PID}
do do
...@@ -107,6 +114,47 @@ list() { ...@@ -107,6 +114,47 @@ list() {
fi fi
} }
monitor() {
idx=0
while true; do
PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{print $2}'`
if [[ ${OS_NAME} != "Linux" && ${OS_NAME} != "Darwin" ]]; then
PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{print $1}'`
fi
if [[ "${PID}" == "" ]]; then
start
idx=0
fi
((LIFE=idx*${SLEEP_INTERVAL}))
echo "${APP_NAME} ( pid = " ${PID} ") has been working in normal state for " $LIFE " seconds."
((idx ++))
sleep ${SLEEP_INTERVAL}
done
}
crontab() {
idx=0
while true; do
PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{print $2}'`
if [[ ${OS_NAME} != "Linux" && ${OS_NAME} != "Darwin" ]]; then
PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{print $1}'`
fi
if [[ "${PID}" == "" ]]; then
start
idx=0
fi
((LIFE=idx*${SLEEP_INTERVAL}))
echo "${APP_NAME} ( pid = " ${PID} ") has been working in normal state for " $LIFE " seconds."
((idx ++))
sleep ${SLEEP_INTERVAL}
if [[ ${LIFE} -gt ${MAX_LIFETIME} ]]; then
kill -9 ${PID}
fi
done
}
opt=$1 opt=$1
case C"$opt" in case C"$opt" in
Cstart) Cstart)
...@@ -125,6 +173,12 @@ case C"$opt" in ...@@ -125,6 +173,12 @@ case C"$opt" in
Clist) Clist)
list list
;; ;;
Cmonitor)
monitor
;;
Ccrontab)
crontab
;;
C*) C*)
usage usage
;; ;;
......
...@@ -9,9 +9,9 @@ ...@@ -9,9 +9,9 @@
# FILE : app.properties # FILE : app.properties
# ****************************************************** # ******************************************************
TARGET_EXEC_NAME="echo_client" export TARGET_EXEC_NAME="echo_client"
BUILD_PACKAGE="app" export BUILD_PACKAGE="app"
TARGET_CONF_FILE="conf/config.toml" export TARGET_CONF_FILE="conf/config.toml"
TARGET_LOG_CONF_FILE="conf/log.xml" export TARGET_LOG_CONF_FILE="conf/log.xml"
...@@ -20,16 +20,16 @@ if [[ ${GOOS} == "windows" ]]; then ...@@ -20,16 +20,16 @@ if [[ ${GOOS} == "windows" ]]; then
TARGET_SBIN_NAME=${TARGET_SBIN_NAME}.exe TARGET_SBIN_NAME=${TARGET_SBIN_NAME}.exe
fi fi
TARGET_NAME=${TARGET_FOLDER}/${TARGET_SBIN_NAME} TARGET_NAME=${TARGET_FOLDER}/${TARGET_SBIN_NAME}
if [[ $PROFILE = "test" ]]; then if [[ $PROFILE == "dev" || $PROFILE == "test" ]]; then
# GFLAGS=-gcflags "-N -l" -race -x -v # -x会把go build的详细过程输出 # GFLAGS=-gcflags "-N -l" -race -x -v # -x会把go build的详细过程输出
# GFLAGS=-gcflags "-N -l" -race -v # GFLAGS=-gcflags "-N -l" -race -v
# GFLAGS="-gcflags \"-N -l\" -v" # GFLAGS="-gcflags \"-N -l\" -v"
cd ${BUILD_PACKAGE} && go build -gcflags "-N -l" -x -v -i -o ${TARGET_NAME} && cd - cd ${BUILD_PACKAGE} && GOOS=$GOOS GOARCH=$GOARCH go build -gcflags "-N -l" -x -v -i -o ${TARGET_NAME} && cd -
else else
# -s去掉符号表(然后panic时候的stack trace就没有任何文件名/行号信息了,这个等价于普通C/C++程序被strip的效果), # -s去掉符号表(然后panic时候的stack trace就没有任何文件名/行号信息了,这个等价于普通C/C++程序被strip的效果),
# -w去掉DWARF调试信息,得到的程序就不能用gdb调试了。-s和-w也可以分开使用,一般来说如果不打算用gdb调试, # -w去掉DWARF调试信息,得到的程序就不能用gdb调试了。-s和-w也可以分开使用,一般来说如果不打算用gdb调试,
# -w基本没啥损失。-s的损失就有点大了。 # -w基本没啥损失。-s的损失就有点大了。
cd ${BUILD_PACKAGE} && go build -ldflags "-w" -x -v -i -o ${TARGET_NAME} && cd - cd ${BUILD_PACKAGE} && GOOS=$GOOS GOARCH=$GOARCH go build -ldflags "-w" -x -v -i -o ${TARGET_NAME} && cd -
fi fi
TAR_NAME=${TARGET_EXEC_NAME}-${version}-`date "+%Y%m%d-%H%M"`-${PROFILE} TAR_NAME=${TARGET_EXEC_NAME}-${version}-`date "+%Y%m%d-%H%M"`-${PROFILE}
...@@ -45,22 +45,25 @@ mkdir -p ${CONF_DIR} ...@@ -45,22 +45,25 @@ mkdir -p ${CONF_DIR}
mv ${TARGET_NAME} ${SBIN_DIR} mv ${TARGET_NAME} ${SBIN_DIR}
cp -r assembly/bin ${BIN_DIR} cp -r assembly/bin ${BIN_DIR}
cd ${BIN_DIR}/bin/ && mv load.sh load_${TARGET_EXEC_NAME}.sh && cd -
platform=$(uname)
# modify APPLICATION_NAME # modify APPLICATION_NAME
if [ "$(uname)" == "Darwin" ]; then if [ ${platform} == "Darwin" ]; then
sed -i "" "s~APPLICATION_NAME~${TARGET_EXEC_NAME}~g" ${BIN_DIR}/bin/* sed -i "" "s~APPLICATION_NAME~${TARGET_EXEC_NAME}~g" ${BIN_DIR}/bin/*
else else
sed -i "s~APPLICATION_NAME~${TARGET_EXEC_NAME}~g" ${BIN_DIR}/bin/* sed -i "s~APPLICATION_NAME~${TARGET_EXEC_NAME}~g" ${BIN_DIR}/bin/*
fi fi
# modify TARGET_CONF_FILE # modify TARGET_CONF_FILE
if [ "$(uname)" == "Darwin" ]; then if [ ${platform} == "Darwin" ]; then
sed -i "" "s~TARGET_CONF_FILE~${TARGET_CONF_FILE}~g" ${BIN_DIR}/bin/* sed -i "" "s~TARGET_CONF_FILE~${TARGET_CONF_FILE}~g" ${BIN_DIR}/bin/*
else else
sed -i "s~TARGET_CONF_FILE~${TARGET_CONF_FILE}~g" ${BIN_DIR}/bin/* sed -i "s~TARGET_CONF_FILE~${TARGET_CONF_FILE}~g" ${BIN_DIR}/bin/*
fi fi
# modify TARGET_LOG_CONF_FILE # modify TARGET_LOG_CONF_FILE
if [ "$(uname)" == "Darwin" ]; then if [ ${platform} == "Darwin" ]; then
sed -i "" "s~TARGET_LOG_CONF_FILE~${TARGET_LOG_CONF_FILE}~g" ${BIN_DIR}/bin/* sed -i "" "s~TARGET_LOG_CONF_FILE~${TARGET_LOG_CONF_FILE}~g" ${BIN_DIR}/bin/*
else else
sed -i "s~TARGET_LOG_CONF_FILE~${TARGET_LOG_CONF_FILE}~g" ${BIN_DIR}/bin/* sed -i "s~TARGET_LOG_CONF_FILE~${TARGET_LOG_CONF_FILE}~g" ${BIN_DIR}/bin/*
......
#!/usr/bin/env bash
# ******************************************************
# DESC : build script for release env
# AUTHOR : Alex Stocks
# VERSION : 1.0
# LICENCE : Apache License 2.0
# EMAIL : alexstocks@foxmail.com
# MOD : 2016-07-12 16:34
# FILE : test.sh
# ******************************************************
set -e
export GOOS=linux
export GOARCH=amd64
export PROFILE="release"
export PROJECT_HOME=`pwd`
if [ -f "${PROJECT_HOME}/assembly/common/app.properties" ]; then
. ${PROJECT_HOME}/assembly/common/app.properties
fi
if [ -f "${PROJECT_HOME}/assembly/common/build.sh" ]; then
sh ${PROJECT_HOME}/assembly/common/build.sh
fi
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
# DESC : build script for test env # DESC : build script for test env
# AUTHOR : Alex Stocks # AUTHOR : Alex Stocks
# VERSION : 1.0 # VERSION : 1.0
# LICENCE : LGPL V3 # LICENCE : Apache License 2.0
# EMAIL : alexstocks@foxmail.com # EMAIL : alexstocks@foxmail.com
# MOD : 2016-07-12 16:34 # MOD : 2016-07-12 16:34
# FILE : test.sh # FILE : test.sh
...@@ -15,15 +15,14 @@ set -e ...@@ -15,15 +15,14 @@ set -e
export GOOS=linux export GOOS=linux
export GOARCH=amd64 export GOARCH=amd64
PROFILE=test export PROFILE="test"
export PROJECT_HOME=`pwd`
PROJECT_HOME=`pwd`
if [ -f "${PROJECT_HOME}/assembly/common/app.properties" ]; then if [ -f "${PROJECT_HOME}/assembly/common/app.properties" ]; then
. ${PROJECT_HOME}/assembly/common/app.properties . ${PROJECT_HOME}/assembly/common/app.properties
fi fi
if [ -f "${PROJECT_HOME}/assembly/common/build.sh" ]; then if [ -f "${PROJECT_HOME}/assembly/common/build.sh" ]; then
. ${PROJECT_HOME}/assembly/common/build.sh sh ${PROJECT_HOME}/assembly/common/build.sh
fi fi
#!/usr/bin/env bash
# ******************************************************
# DESC : build script for release env
# AUTHOR : Alex Stocks
# VERSION : 1.0
# LICENCE : Apache License 2.0
# EMAIL : alexstocks@foxmail.com
# MOD : 2016-07-12 16:34
# FILE : test.sh
# ******************************************************
set -e
export GOOS=darwin
export GOARCH=amd64
export PROFILE="release"
export PROJECT_HOME=`pwd`
if [ -f "${PROJECT_HOME}/assembly/common/app.properties" ]; then
. ${PROJECT_HOME}/assembly/common/app.properties
fi
if [ -f "${PROJECT_HOME}/assembly/common/build.sh" ]; then
sh ${PROJECT_HOME}/assembly/common/build.sh
fi
...@@ -15,15 +15,14 @@ set -e ...@@ -15,15 +15,14 @@ set -e
export GOOS=darwin export GOOS=darwin
export GOARCH=amd64 export GOARCH=amd64
PROFILE=test export PROFILE="test"
export PROJECT_HOME=`pwd`
PROJECT_HOME=`pwd`
if [ -f "${PROJECT_HOME}/assembly/common/app.properties" ]; then if [ -f "${PROJECT_HOME}/assembly/common/app.properties" ]; then
. ${PROJECT_HOME}/assembly/common/app.properties . ${PROJECT_HOME}/assembly/common/app.properties
fi fi
if [ -f "${PROJECT_HOME}/assembly/common/build.sh" ]; then if [ -f "${PROJECT_HOME}/assembly/common/build.sh" ]; then
. ${PROJECT_HOME}/assembly/common/build.sh sh ${PROJECT_HOME}/assembly/common/build.sh
fi fi
#!/usr/bin/env bash
# ******************************************************
# DESC : build script for release env
# AUTHOR : Alex Stocks
# VERSION : 1.0
# LICENCE : Apache License 2.0
# EMAIL : alexstocks@foxmail.com
# MOD : 2016-07-12 16:34
# FILE : test.sh
# ******************************************************
set -e
export GOOS=windows
export GOARCH=amd64
export PROFILE="release"
export PROJECT_HOME=`pwd`
if [ -f "${PROJECT_HOME}/assembly/common/app.properties" ]; then
. ${PROJECT_HOME}/assembly/common/app.properties
fi
if [ -f "${PROJECT_HOME}/assembly/common/build.sh" ]; then
sh ${PROJECT_HOME}/assembly/common/build.sh
fi
...@@ -15,15 +15,13 @@ set -e ...@@ -15,15 +15,13 @@ set -e
export GOOS=windows export GOOS=windows
export GOARCH=amd64 export GOARCH=amd64
PROFILE=test export PROFILE="test"
export PROJECT_HOME=`pwd`
PROJECT_HOME=`pwd`
if [ -f "${PROJECT_HOME}/assembly/common/app.properties" ]; then if [ -f "${PROJECT_HOME}/assembly/common/app.properties" ]; then
. ${PROJECT_HOME}/assembly/common/app.properties . ${PROJECT_HOME}/assembly/common/app.properties
fi fi
if [ -f "${PROJECT_HOME}/assembly/common/build.sh" ]; then if [ -f "${PROJECT_HOME}/assembly/common/build.sh" ]; then
. ${PROJECT_HOME}/assembly/common/build.sh sh ${PROJECT_HOME}/assembly/common/build.sh
fi fi
...@@ -11,16 +11,22 @@ ...@@ -11,16 +11,22 @@
APP_NAME="APPLICATION_NAME" APP_NAME="APPLICATION_NAME"
APP_ARGS="" APP_ARGS=""
SLEEP_INTERVAL=5
MAX_LIFETIME=4000
PROJECT_HOME="" PROJECT_HOME=""
OS_NAME=`uname` OS_NAME=`uname`
if [[ ${OS_NAME} == "Linux" ]]; then if [[ ${OS_NAME} != "Windows" ]]; then
PROJECT_HOME=`pwd` PROJECT_HOME=`pwd`
PROJECT_HOME=${PROJECT_HOME}"/" PROJECT_HOME=${PROJECT_HOME}"/"
else
APP_NAME="APPLICATION_NAME.exe"
fi fi
export APP_CONF_FILE=${PROJECT_HOME}"TARGET_CONF_FILE" export APP_CONF_FILE=${PROJECT_HOME}"TARGET_CONF_FILE"
export APP_LOG_CONF_FILE=${PROJECT_HOME}"TARGET_LOG_CONF_FILE" export APP_LOG_CONF_FILE=${PROJECT_HOME}"TARGET_LOG_CONF_FILE"
# export GOTRACEBACK=system
# export GODEBUG=gctrace=1
usage() { usage() {
echo "Usage: $0 start" echo "Usage: $0 start"
...@@ -28,6 +34,8 @@ usage() { ...@@ -28,6 +34,8 @@ usage() {
echo " $0 term" echo " $0 term"
echo " $0 restart" echo " $0 restart"
echo " $0 list" echo " $0 list"
echo " $0 monitor"
echo " $0 crontab"
exit exit
} }
...@@ -40,21 +48,21 @@ start() { ...@@ -40,21 +48,21 @@ start() {
CMD="${APP_BIN}" CMD="${APP_BIN}"
eval ${CMD} eval ${CMD}
PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{print $2}'` PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{print $2}'`
if [[ ${OS_NAME} != "Linux" ]]; then if [[ ${OS_NAME} != "Linux" && ${OS_NAME} != "Darwin" ]]; then
PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{print $1}'` PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{print $1}'`
fi fi
if [ "${PID}" != "" ]; CUR=`date +%FT%T`
then if [ "${PID}" != "" ]; then
for p in ${PID} for p in ${PID}
do do
echo "start ${APP_NAME} ( pid =" ${p} ")" echo "start ${APP_NAME} ( pid =" ${p} ") at " ${CUR}
done done
fi fi
} }
stop() { stop() {
PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{print $2}'` PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{print $2}'`
if [[ ${OS_NAME} != "Linux" ]]; then if [[ ${OS_NAME} != "Linux" && ${OS_NAME} != "Darwin" ]]; then
PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{print $1}'` PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{print $1}'`
fi fi
if [ "${PID}" != "" ]; if [ "${PID}" != "" ];
...@@ -70,7 +78,7 @@ stop() { ...@@ -70,7 +78,7 @@ stop() {
term() { term() {
PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{print $2}'` PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{print $2}'`
if [[ ${OS_NAME} != "Linux" ]]; then if [[ ${OS_NAME} != "Linux" && ${OS_NAME} != "Darwin" ]]; then
PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{print $1}'` PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{print $1}'`
fi fi
if [ "${PID}" != "" ]; if [ "${PID}" != "" ];
...@@ -85,19 +93,18 @@ term() { ...@@ -85,19 +93,18 @@ term() {
list() { list() {
PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{printf("%s,%s,%s,%s\n", $1, $2, $9, $10)}'` PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{printf("%s,%s,%s,%s\n", $1, $2, $9, $10)}'`
if [[ ${OS_NAME} != "Linux" ]]; then if [[ ${OS_NAME} != "Linux" && ${OS_NAME} != "Darwin" ]]; then
PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{printf("%s,%s,%s,%s,%s\n", $1, $4, $6, $7, $8)}'` PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{printf("%s,%s,%s,%s,%s\n", $1, $4, $6, $7, $8)}'`
fi fi
if [ "${PID}" != "" ]; if [ "${PID}" != "" ]; then
then
echo "list ${APP_NAME}" echo "list ${APP_NAME}"
if [[ ${OS_NAME} == "Linux" ]]; then if [[ ${OS_NAME} == "Linux" || ${OS_NAME} == "Darwin" ]]; then
echo "index: user, pid, start, duration" echo "index: user, pid, start, duration"
else else
echo "index: PID, WINPID, UID, STIME, COMMAND" echo "index: PID, WINPID, UID, STIME, COMMAND"
fi fi
idx=0 idx=0
for ps in ${PID} for ps in ${PID}
do do
...@@ -107,6 +114,47 @@ list() { ...@@ -107,6 +114,47 @@ list() {
fi fi
} }
monitor() {
idx=0
while true; do
PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{print $2}'`
if [[ ${OS_NAME} != "Linux" && ${OS_NAME} != "Darwin" ]]; then
PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{print $1}'`
fi
if [[ "${PID}" == "" ]]; then
start
idx=0
fi
((LIFE=idx*${SLEEP_INTERVAL}))
echo "${APP_NAME} ( pid = " ${PID} ") has been working in normal state for " $LIFE " seconds."
((idx ++))
sleep ${SLEEP_INTERVAL}
done
}
crontab() {
idx=0
while true; do
PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{print $2}'`
if [[ ${OS_NAME} != "Linux" && ${OS_NAME} != "Darwin" ]]; then
PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{print $1}'`
fi
if [[ "${PID}" == "" ]]; then
start
idx=0
fi
((LIFE=idx*${SLEEP_INTERVAL}))
echo "${APP_NAME} ( pid = " ${PID} ") has been working in normal state for " $LIFE " seconds."
((idx ++))
sleep ${SLEEP_INTERVAL}
if [[ ${LIFE} -gt ${MAX_LIFETIME} ]]; then
kill -9 ${PID}
fi
done
}
opt=$1 opt=$1
case C"$opt" in case C"$opt" in
Cstart) Cstart)
...@@ -125,6 +173,12 @@ case C"$opt" in ...@@ -125,6 +173,12 @@ case C"$opt" in
Clist) Clist)
list list
;; ;;
Cmonitor)
monitor
;;
Ccrontab)
crontab
;;
C*) C*)
usage usage
;; ;;
......
...@@ -9,8 +9,9 @@ ...@@ -9,8 +9,9 @@
# FILE : app.properties # FILE : app.properties
# ****************************************************** # ******************************************************
TARGET_EXEC_NAME="echo_server" export TARGET_EXEC_NAME="echo_server"
BUILD_PACKAGE="app" export BUILD_PACKAGE="app"
export TARGET_CONF_FILE="conf/config.toml"
export TARGET_LOG_CONF_FILE="conf/log.xml"
TARGET_CONF_FILE="conf/config.toml"
TARGET_LOG_CONF_FILE="conf/log.xml"
...@@ -20,16 +20,16 @@ if [[ ${GOOS} == "windows" ]]; then ...@@ -20,16 +20,16 @@ if [[ ${GOOS} == "windows" ]]; then
TARGET_SBIN_NAME=${TARGET_SBIN_NAME}.exe TARGET_SBIN_NAME=${TARGET_SBIN_NAME}.exe
fi fi
TARGET_NAME=${TARGET_FOLDER}/${TARGET_SBIN_NAME} TARGET_NAME=${TARGET_FOLDER}/${TARGET_SBIN_NAME}
if [[ $PROFILE = "test" ]]; then if [[ $PROFILE == "dev" || $PROFILE == "test" ]]; then
# GFLAGS=-gcflags "-N -l" -race -x -v # -x会把go build的详细过程输出 # GFLAGS=-gcflags "-N -l" -race -x -v # -x会把go build的详细过程输出
# GFLAGS=-gcflags "-N -l" -race -v # GFLAGS=-gcflags "-N -l" -race -v
# GFLAGS="-gcflags \"-N -l\" -v" # GFLAGS="-gcflags \"-N -l\" -v"
cd ${BUILD_PACKAGE} && go build -gcflags "-N -l" -x -v -i -o ${TARGET_NAME} && cd - cd ${BUILD_PACKAGE} && GOOS=$GOOS GOARCH=$GOARCH go build -gcflags "-N -l" -x -v -i -o ${TARGET_NAME} && cd -
else else
# -s去掉符号表(然后panic时候的stack trace就没有任何文件名/行号信息了,这个等价于普通C/C++程序被strip的效果), # -s去掉符号表(然后panic时候的stack trace就没有任何文件名/行号信息了,这个等价于普通C/C++程序被strip的效果),
# -w去掉DWARF调试信息,得到的程序就不能用gdb调试了。-s和-w也可以分开使用,一般来说如果不打算用gdb调试, # -w去掉DWARF调试信息,得到的程序就不能用gdb调试了。-s和-w也可以分开使用,一般来说如果不打算用gdb调试,
# -w基本没啥损失。-s的损失就有点大了。 # -w基本没啥损失。-s的损失就有点大了。
cd ${BUILD_PACKAGE} && go build -ldflags "-w" -x -v -i -o ${TARGET_NAME} && cd - cd ${BUILD_PACKAGE} && GOOS=$GOOS GOARCH=$GOARCH go build -ldflags "-w" -x -v -i -o ${TARGET_NAME} && cd -
fi fi
TAR_NAME=${TARGET_EXEC_NAME}-${version}-`date "+%Y%m%d-%H%M"`-${PROFILE} TAR_NAME=${TARGET_EXEC_NAME}-${version}-`date "+%Y%m%d-%H%M"`-${PROFILE}
...@@ -45,23 +45,25 @@ mkdir -p ${CONF_DIR} ...@@ -45,23 +45,25 @@ mkdir -p ${CONF_DIR}
mv ${TARGET_NAME} ${SBIN_DIR} mv ${TARGET_NAME} ${SBIN_DIR}
cp -r assembly/bin ${BIN_DIR} cp -r assembly/bin ${BIN_DIR}
cd ${BIN_DIR}/bin/ && mv load.sh load_${TARGET_EXEC_NAME}.sh && cd -
platform=$(uname)
# modify APPLICATION_NAME # modify APPLICATION_NAME
if [ "$(uname)" == "Darwin" ]; then if [ ${platform} == "Darwin" ]; then
sed -i "" "s~APPLICATION_NAME~${TARGET_EXEC_NAME}~g" ${BIN_DIR}/bin/* sed -i "" "s~APPLICATION_NAME~${TARGET_EXEC_NAME}~g" ${BIN_DIR}/bin/*
else else
sed -i "s~APPLICATION_NAME~${TARGET_EXEC_NAME}~g" ${BIN_DIR}/bin/* sed -i "s~APPLICATION_NAME~${TARGET_EXEC_NAME}~g" ${BIN_DIR}/bin/*
fi fi
# modify TARGET_CONF_FILE # modify TARGET_CONF_FILE
if [ "$(uname)" == "Darwin" ]; then if [ ${platform} == "Darwin" ]; then
sed -i "" "s~TARGET_CONF_FILE~${TARGET_CONF_FILE}~g" ${BIN_DIR}/bin/* sed -i "" "s~TARGET_CONF_FILE~${TARGET_CONF_FILE}~g" ${BIN_DIR}/bin/*
else else
sed -i "s~TARGET_CONF_FILE~${TARGET_CONF_FILE}~g" ${BIN_DIR}/bin/* sed -i "s~TARGET_CONF_FILE~${TARGET_CONF_FILE}~g" ${BIN_DIR}/bin/*
fi fi
# modify TARGET_LOG_CONF_FILE # modify TARGET_LOG_CONF_FILE
if [ "$(uname)" == "Darwin" ]; then if [ ${platform} == "Darwin" ]; then
sed -i "" "s~TARGET_LOG_CONF_FILE~${TARGET_LOG_CONF_FILE}~g" ${BIN_DIR}/bin/* sed -i "" "s~TARGET_LOG_CONF_FILE~${TARGET_LOG_CONF_FILE}~g" ${BIN_DIR}/bin/*
else else
sed -i "s~TARGET_LOG_CONF_FILE~${TARGET_LOG_CONF_FILE}~g" ${BIN_DIR}/bin/* sed -i "s~TARGET_LOG_CONF_FILE~${TARGET_LOG_CONF_FILE}~g" ${BIN_DIR}/bin/*
......
#!/usr/bin/env bash
# ******************************************************
# DESC : build script for release env
# AUTHOR : Alex Stocks
# VERSION : 1.0
# LICENCE : Apache License 2.0
# EMAIL : alexstocks@foxmail.com
# MOD : 2016-07-12 16:34
# FILE : test.sh
# ******************************************************
set -e
export GOOS=linux
export GOARCH=amd64
export PROFILE="release"
export PROJECT_HOME=`pwd`
if [ -f "${PROJECT_HOME}/assembly/common/app.properties" ]; then
. ${PROJECT_HOME}/assembly/common/app.properties
fi
if [ -f "${PROJECT_HOME}/assembly/common/build.sh" ]; then
sh ${PROJECT_HOME}/assembly/common/build.sh
fi
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
# DESC : build script for test env # DESC : build script for test env
# AUTHOR : Alex Stocks # AUTHOR : Alex Stocks
# VERSION : 1.0 # VERSION : 1.0
# LICENCE : LGPL V3 # LICENCE : Apache License 2.0
# EMAIL : alexstocks@foxmail.com # EMAIL : alexstocks@foxmail.com
# MOD : 2016-07-12 16:34 # MOD : 2016-07-12 16:34
# FILE : test.sh # FILE : test.sh
...@@ -15,15 +15,14 @@ set -e ...@@ -15,15 +15,14 @@ set -e
export GOOS=linux export GOOS=linux
export GOARCH=amd64 export GOARCH=amd64
PROFILE=test export PROFILE="test"
export PROJECT_HOME=`pwd`
PROJECT_HOME=`pwd`
if [ -f "${PROJECT_HOME}/assembly/common/app.properties" ]; then if [ -f "${PROJECT_HOME}/assembly/common/app.properties" ]; then
. ${PROJECT_HOME}/assembly/common/app.properties . ${PROJECT_HOME}/assembly/common/app.properties
fi fi
if [ -f "${PROJECT_HOME}/assembly/common/build.sh" ]; then if [ -f "${PROJECT_HOME}/assembly/common/build.sh" ]; then
. ${PROJECT_HOME}/assembly/common/build.sh sh ${PROJECT_HOME}/assembly/common/build.sh
fi fi
#!/usr/bin/env bash
# ******************************************************
# DESC : build script for release env
# AUTHOR : Alex Stocks
# VERSION : 1.0
# LICENCE : Apache License 2.0
# EMAIL : alexstocks@foxmail.com
# MOD : 2016-07-12 16:34
# FILE : test.sh
# ******************************************************
set -e
export GOOS=darwin
export GOARCH=amd64
export PROFILE="release"
export PROJECT_HOME=`pwd`
if [ -f "${PROJECT_HOME}/assembly/common/app.properties" ]; then
. ${PROJECT_HOME}/assembly/common/app.properties
fi
if [ -f "${PROJECT_HOME}/assembly/common/build.sh" ]; then
sh ${PROJECT_HOME}/assembly/common/build.sh
fi
...@@ -15,15 +15,14 @@ set -e ...@@ -15,15 +15,14 @@ set -e
export GOOS=darwin export GOOS=darwin
export GOARCH=amd64 export GOARCH=amd64
PROFILE=test export PROFILE="test"
export PROJECT_HOME=`pwd`
PROJECT_HOME=`pwd`
if [ -f "${PROJECT_HOME}/assembly/common/app.properties" ]; then if [ -f "${PROJECT_HOME}/assembly/common/app.properties" ]; then
. ${PROJECT_HOME}/assembly/common/app.properties . ${PROJECT_HOME}/assembly/common/app.properties
fi fi
if [ -f "${PROJECT_HOME}/assembly/common/build.sh" ]; then if [ -f "${PROJECT_HOME}/assembly/common/build.sh" ]; then
. ${PROJECT_HOME}/assembly/common/build.sh sh ${PROJECT_HOME}/assembly/common/build.sh
fi fi
#!/usr/bin/env bash
# ******************************************************
# DESC : build script for release env
# AUTHOR : Alex Stocks
# VERSION : 1.0
# LICENCE : Apache License 2.0
# EMAIL : alexstocks@foxmail.com
# MOD : 2016-07-12 16:34
# FILE : test.sh
# ******************************************************
set -e
export GOOS=windows
export GOARCH=amd64
export PROFILE="release"
export PROJECT_HOME=`pwd`
if [ -f "${PROJECT_HOME}/assembly/common/app.properties" ]; then
. ${PROJECT_HOME}/assembly/common/app.properties
fi
if [ -f "${PROJECT_HOME}/assembly/common/build.sh" ]; then
sh ${PROJECT_HOME}/assembly/common/build.sh
fi
...@@ -15,15 +15,14 @@ set -e ...@@ -15,15 +15,14 @@ set -e
export GOOS=windows export GOOS=windows
export GOARCH=amd64 export GOARCH=amd64
PROFILE=test export PROFILE="test"
export PROJECT_HOME=`pwd`
PROJECT_HOME=`pwd`
if [ -f "${PROJECT_HOME}/assembly/common/app.properties" ]; then if [ -f "${PROJECT_HOME}/assembly/common/app.properties" ]; then
. ${PROJECT_HOME}/assembly/common/app.properties . ${PROJECT_HOME}/assembly/common/app.properties
fi fi
if [ -f "${PROJECT_HOME}/assembly/common/build.sh" ]; then if [ -f "${PROJECT_HOME}/assembly/common/build.sh" ]; then
. ${PROJECT_HOME}/assembly/common/build.sh sh ${PROJECT_HOME}/assembly/common/build.sh
fi fi
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment