intermax 추가

This commit is contained in:
2024-04-05 11:46:34 +09:00
parent 80ff9c2066
commit 43afe1356b
795 changed files with 146887 additions and 0 deletions

View File

@@ -0,0 +1,415 @@
#!/bin/sh
# set log path(default)
# WORKING_DIRECOTYR=`pwd`
# LOG_PATH="${WORKING_DIRECOTYR}/temp_imxtxnd.log"
# $1: log filename, $2: log limit size
func_check_log_file()
{
LOG_CHK_SIZE=1048576
if [ -n "$2" ];then
LOG_CHK_SIZE=$2
fi
if [ -f "$1" ];then
LOG_SIZE=`ls -la $1 | awk -F' ' '{print $5}'`
if [ $? -eq 0 ]; then
if [ ${LOG_SIZE} -gt ${LOG_CHK_SIZE} ]; then
if [ -f $1.bak ];then
rm -rf $1.bak
fi
mv $1 $1.bak
# rm -rf $1
# echo "log size is over. remove log file.[size:${LOG_SIZE},file:$1]"
fi
fi
fi
}
# $1: log filename $2: log string
func_log()
{
CUR_DATE=`date +%Y%m%d.%H%M%S`
# nfs ȯ<><EFBFBD><E6BFA1> <20>Ѱ<EFBFBD><D1B0><EFBFBD> <20><>ġ<EFBFBD><C4A1> <20><><EFBFBD><EFBFBD><EFBFBD>Ͽ<EFBFBD> <20><><EFBFBD><EFBFBD> <20>ٸ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
# <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> imxtxnd<6E><64> <20>׳<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ǹ<EFBFBD><C7B9><EFBFBD><EFBFBD><EFBFBD>.
if [ -n "$1" ];
then
func_check_log_file "$1" 10240
echo "${CUR_DATE}[${RUN_MODE}] $2" >> "$1"
else
echo "${CUR_DATE}[${RUN_MODE}] $2"
fi
}
FUNC_RESULT=""
# $1: pid, $2: check process name
func_is_running_process()
{
if [ -z "$1" ];
then
func_log "" "pid is wrong."
FUNC_RESULT="false"
return
fi
PROC_NAME=`ps -p $1 -o args= | awk -F' ' '{print $1}'`
func_log "" "EXEC_PID[$1],PROC_NAME[${PROC_NAME}]"
if [ "${PROC_NAME}" = "$2" ];
then
FUNC_RESULT="true"
else
FUNC_RESULT="false"
fi
}
# $1: exit code, $2: message
func_usage_exit()
{
if [ -n "$2" ];
then
echo "$2"
fi
echo "imxtxnd [options]"
echo "options:"
echo " --[install|uninstall|continue|daemon]"
echo " install: Start imxtxn as a new daemon."
echo " uninstall: Start Terminate running imxtxn."
echo " continue: Continuing from imxtxn already running."
echo " daemon: Starts as a standalone daemon.(default)"
echo " --set-home=[directory] Set the InterMax home directory."
echo " (default:current direcotry)"
echo " --bit=[32|64] Set 32 or 64 bit.(default:64)"
echo ""
exit $1
}
##########################################
# option
SELF_PROC_PATH="$0"
if [ -n "$1" ];
then
for i in $@
do
echo "$i"
case "$i" in
--install)
RUN_MODE="install"
;;
--uninstall)
RUN_MODE="uninstall"
;;
--continue)
RUN_MODE="continue"
;;
--daemon)
RUN_MODE="daemon"
;;
--set-home=*)
ENV_INTERMAX_HOME=`echo "$i" | awk -F'=' '{print $2}'`
;;
--bit=*)
ENV_BIT=`echo "$i" | awk -F'=' '{print $2}'`
;;
--help)
func_usage_exit 0
;;
*)
func_usage_exit 1 "option is wrong."
;;
esac
done
fi
##########################################
##########################################
# os
# linux <20><> <20>׽<EFBFBD>Ʈ <20>غ<EFBFBD>
OS_NAME=`uname -s`
case $OS_NAME in
"HP-UX" )
ARCH=`uname -m`
if [ ! "${ARCH}" = "ia64" ];
then
func_log "${LOG_PATH}" "${ARCH} is not support."
exit 1
fi
ENV_OS_TYPE=hpia
UNIX95=1
;;
"SunOS" )
ENV_OS_TYPE=sun
;;
"AIX" )
ENV_OS_TYPE=aix
;;
"Linux" )
ENV_OS_TYPE=linux
# ENV_OS_TYPE=sun
;;
* )
func_log "${LOG_PATH}" "Unkown OS Name[$OS_NAME]"
exit 1
;;
esac
##########################################
##########################################
# set default bit
if [ "${ENV_BIT}" = "" ];
then
# default 64 bit
ENV_BIT=64
fi
##########################################
##########################################
# set default run mode
if [ "${RUN_MODE}" = "" ];
then
# default 64 bit
RUN_MODE="daemon"
fi
##########################################
##########################################
# set intermax home directory
# 1. input option
# 2. environment INTERMAX_HOME
# 3. current directory
if [ ! "${ENV_INTERMAX_HOME}" = "" ];
then
INTERMAX_HOME="${ENV_INTERMAX_HOME}"
export INTERMAX_HOME
fi
if [ "${INTERMAX_HOME}" = "" ];
then
# set current direcotry base
CUR_DIR=`pwd`
cd ..
INTERMAX_HOME=`pwd`
export INTERMAX_HOME
cd ${CUR_DIR}
fi
##########################################
##########################################
# check intermax home directory
if [ ! -d ${INTERMAX_HOME}/lib/imx ];
then
func_log "${LOG_PATH}" "InterMax Home Directory is worng.[${INTERMAX_HOME}]"
exit 1
fi
# <20>̰<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ؾ<EFBFBD> <20>ϳ<EFBFBD>.. <20>ϴ<EFBFBD> <20><><EFBFBD><EFBFBD> ó<><C3B3>
if [ ! -d ${INTERMAX_HOME}/data/agent ];
then
func_log "${LOG_PATH}" "InterMax Home Directory is worng.[${INTERMAX_HOME}]"
exit 1
fi
##########################################
##########################################
# reset log path & chagne directory to InterMax home
# cd ${INTERMAX_HOME}
func_log "${LOG_PATH}" "InterMax Home Directory [${INTERMAX_HOME}]"
# <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>α׸<CEB1> ȭ<><20><><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD><CFB5><EFBFBD> <20>Ѵ<EFBFBD>.
LOG_PATH="${INTERMAX_HOME}/log/imxtxnd.log"
##########################################
##########################################
# set execute process path
EXEC_PROCESS="${INTERMAX_HOME}/lib/imx/imxtxn"
# echo "execute process path[${EXEC_PROCESS}]"
func_log "${LOG_PATH}" "execute process path[${EXEC_PROCESS}]"
PROC_PID_PATH=${INTERMAX_HOME}/data/agent/imxtxn
func_log "${LOG_PATH}" "PROC_PID_PATH[$PROC_PID_PATH]"
##########################################
##########################################
# copy imxtxn(if not exist)
if [ ! -f ${EXEC_PROCESS} ];
then
cp ${INTERMAX_HOME}/lib/imx/imxtxn_${ENV_OS_TYPE}_${ENV_BIT} ${EXEC_PROCESS}
if [ ! "$?" = "0" ];
then
func_log "${LOG_PATH}" "${INTERMAX_HOME}/lib/imx/imxtxn_${ENV_OS_TYPE}_${ENV_BIT} is not exist."
exit 3
fi
fi
##########################################
##########################################
# check config
# test command(0 or 1)
# sed -n '/ENABLE_TXN_STANDALONE=\(.*\)/p' cfg/agent/imx.prop | awk -F'=' '{if($2=="1") exit(0); else exit(1);}'; echo "$?"
CMD_RESULT=`sed -n '/ENABLE_TXN_STANDALONE=\(.*\)/p' ${INTERMAX_HOME}/cfg/agent/imx.prop`
if [ ! "$?" = "0" ];
then
echo "check please - imx config file(imx.prop)"
exit 1
fi
CFG_ENABLE_TXN_STANDALONE=`echo "${CMD_RESULT}" | awk -F'=' '{print $2}'`
if [ ! "${CFG_ENABLE_TXN_STANDALONE}" = "1" ];
then
echo "check please - ENABLE_TXN_STANDALONE option in imx.prop(value:${CFG_ENABLE_TXN_STANDALONE})"
exit 1
fi
echo "ENABLE_TXN_STANDALONE config checked."
##########################################
##########################################
# run process
# stop mode<64><65><EFBFBD><EFBFBD> INTERMAX_HOME<4D><45> <20>ʿ<EFBFBD><CABF>Ͽ<EFBFBD> <20><><EFBFBD><EFBFBD><E2BFA1> install, uninstall<6C><6C> ó<><C3B3><EFBFBD>Ѵ<EFBFBD>.
case ${RUN_MODE} in
"install")
if [ -f "${PROC_PID_PATH}" ];
then
func_is_running_process \
`cat ${PROC_PID_PATH}` \
"${EXEC_PROCESS}"
if [ "${FUNC_RESULT}" = "true" ];
then
echo "imxtxnd - imxtxn is already running."
echo "imxtxnd - Rerun imxtxnd with run mode \"continue\"."
func_log "" "imxtxnd - imxtxn is already running."
func_log "" "imxtxnd - 'imxtxnd --stop' or delete '${INTERMAX_HOME}/data/agent/imxtxnd.pid'"
exit 1
fi
fi
nohup ${SELF_PROC_PATH} --daemon --set-home=${INTERMAX_HOME} 1>/dev/null 2>&1 &
echo "$!" > ${INTERMAX_HOME}/data/agent/imxtxnd.pid
echo "imxtxnd - installed[$!]"
func_log "${LOG_PATH}" "imxtxnd - installed[$!]"
exit 0
;;
"continue")
TEMP_STR=""
if [ -f "${INTERMAX_HOME}/data/agent/imxtxnd.pid" ];
then
TEMP_PID=`cat ${INTERMAX_HOME}/data/agent/imxtxnd.pid`
TEMP_STR=`ps -p ${TEMP_PID} | grep imxtxnd`
fi
if [ -n "${TEMP_STR}" ];
then
func_log "" "${TEMP_STR}"
func_log "" "imxtxnd - imxtxnd is not running."
exit 1
fi
# imxtxnd <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>¿<EFBFBD><C2BF><EFBFBD> imxtxn<78><6E> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
# <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> imxtxn<78><6E> <20>״<EFBFBD><D7B4><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ѵ<EFBFBD>.
nohup ${SELF_PROC_PATH} --daemon --set-home=${INTERMAX_HOME} 1>/dev/null 2>&1 &
echo "$!" > ${INTERMAX_HOME}/data/agent/imxtxnd.pid
echo "imxtxnd - continue[$!]"
func_log "${LOG_PATH}" "imxtxnd - continue[$!]"
exit 0
;;
"uninstall")
if [ -f "${INTERMAX_HOME}/data/agent/imxtxnd.pid" ];
then
rm -rf ${INTERMAX_HOME}/data/agent/imxtxnd.pid
fi
if [ -f "${PROC_PID_PATH}" ];
then
rm -rf ${PROC_PID_PATH}
func_log "${LOG_PATH}" "imxtxnd - uninstall"
else
func_log "${LOG_PATH}" "imxtxnd - imxtxn is not running."
fi
exit 0
;;
"daemon")
func_log "${LOG_PATH}" "imxtxnd daemon"
;;
esac
##########################################
##########################################
# run imxtxn
if [ ! -f "${PROC_PID_PATH}" ];
then
${EXEC_PROCESS} -D
func_log "${LOG_PATH}" "execute process[$EXEC_PROCESS]"
sleep 3
fi
if [ ! -f "${PROC_PID_PATH}" ];
then
func_log "${LOG_PATH}" "execute process has failed.[${EXEC_PROCESS}]"
exit 4
fi
PROC_NAME=""
while [ -f "${PROC_PID_PATH}" ]
do
echo "PROC_PID_PATH[${PROC_PID_PATH}][$EXEC_PROCESS]"
PROC_PID=`cat ${PROC_PID_PATH}`
echo "PROC_PID[${PROC_PID}]"
func_is_running_process \
"${PROC_PID}" \
"${EXEC_PROCESS}"
if [ "${FUNC_RESULT}" = "false" ];
then
func_log "${LOG_PATH}" "process is not running."
# run process
${EXEC_PROCESS} -D
func_log "${LOG_PATH}" "execute process[$EXEC_PROCESS]"
fi
sleep 3
done
##########################################
func_log "${LOG_PATH}" "imxtxnd end"