intermax 추가
This commit is contained in:
415
intermax/23.12.07.02/jspd/bin/imxtxnd.sh
Executable file
415
intermax/23.12.07.02/jspd/bin/imxtxnd.sh
Executable 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"
|
||||
Reference in New Issue
Block a user