host agent 최신화 및 manager agent 추가

This commit is contained in:
ByeonJungHun
2025-04-04 11:10:12 +09:00
parent 576b68b3f5
commit 93ed65c2ad
67 changed files with 43317 additions and 41066 deletions

View File

@@ -0,0 +1,3 @@
{{ EXEM_HOME }}/host/data/host_id
{{ EXEM_HOME }}/exemone-db-agent/db_id
{{ EXEM_HOME }}/ndm/data/agent.id

View File

@@ -1,26 +1,26 @@
#!/bin/sh
# EXPORT
export EXEM_HOME={{ EXEM_HOME }}
export EXEM_HOST_HOME={{ EXEM_HOME }}/host
export RECEIVER_ADDR={{ RECEIVER_ADDR }}:{{ RECEIVER_PORT | default('9010') }}
export MGR_EXEM_HOME={{ EXEM_HOME }}
export MGR_EXEM_MANAGER_HOME={{ EXEM_HOME }}/manager
export MGR_RECEIVER_ADDR={{ RECEIVER_ADDR }}:{{ MANAGER_RECEIVER_PORT | default('9010') }}
# START
PIDFILE=${EXEM_HOST_HOME}/data/host_agent_pid
PIDFILE=${MGR_EXEM_MANAGER_HOME}/data/manager_agent_pid
if [ -f "${PIDFILE}" ]; then
PID=$(echo -n | cat ${PIDFILE})
IS_RUNNING=$(ps -fp "${PID}" | grep -c exem-host-agent)
PID=`echo -n | cat ${PIDFILE}`
IS_RUNNING=`ps -fp "${PID}" | grep -c exem-manager-agent`
if [ "${IS_RUNNING}" -ne 0 ]; then
echo "exem-host-agent is already running (${PID})"
exit
echo "exem-manager-agent is already running (${PID})"
exit 1
fi
fi
chmod 755 ${EXEM_HOST_HOME}/bin/exem-host-agent
chmod 755 ${MGR_EXEM_MANAGER_HOME}/bin/exem-manager-agent
ulimit -n 1024
${EXEM_HOST_HOME}/bin/exem-host-agent -D
${MGR_EXEM_MANAGER_HOME}/bin/exem-manager-agent -D
echo "exem-manager-agent is started [binary_start.sh]"

View File

@@ -1,15 +1,15 @@
#!/bin/sh
# EXPORT
export EXEM_HOME={{ EXEM_HOME }}
export EXEM_HOST_HOME={{ EXEM_HOME }}/host
export MGR_EXEM_HOME={{ EXEM_HOME }}
export MGR_EXEM_MANAGER_HOME={{ EXEM_HOME }}/manager
# STOP
PIDFILE=${EXEM_HOST_HOME}/data/host_agent_pid
PIDFILE=${MGR_EXEM_MANAGER_HOME}/data/manager_agent_pid
if [ -f "${PIDFILE}" ]; then
PID=$(echo -n | cat ${PIDFILE})
PID=`echo -n | cat ${PIDFILE}`
mv ${PIDFILE} ${PIDFILE}.stopped
# WAITING
@@ -17,10 +17,10 @@ if [ -f "${PIDFILE}" ]; then
CNT=0
while [ ${CNT} -lt ${LIMIT_CNT} ];
do
IS_RUNNING=$(ps -fp "${PID}" | grep -c exem-host-agent)
IS_RUNNING=`ps -fp "${PID}" | grep -c exem-manager-agent`
if [ "${IS_RUNNING}" -ne 0 ]; then
CNT=$((CNT+1))
echo "exem-host-agent is stopping (${PID}) ..."
CNT=`expr $CNT + 1`
echo "exem-manager-agent is stopping (${PID}) ..."
sleep 1
else
break
@@ -28,12 +28,14 @@ if [ -f "${PIDFILE}" ]; then
done
if [ ${CNT} -ge ${LIMIT_CNT} ]; then
echo "Something is wrong. Check exem-host-agent (${PID})"
echo "Something is wrong. Check exem-manager-agent (${PID})"
exit 1
fi
echo "exem-host-agent is stopped (${PID})"
echo "exem-manager-agent is stopped (${PID})"
else
echo "exem-host-agent is not running"
echo "exem-manager-agent is not running"
fi
echo "exem-manager-agent is stopped [binary_stop.sh]"

View File

@@ -1,29 +0,0 @@
#!/bin/bash
# Startup script for exemONE exem-host-agent
# chkconfig: 345 50 50
# description: exemONE exem-host-agent
# processname: exem-host-agent
# directory : EXEM_HOST_HOME={{ EXEM_HOME }}
source /etc/profile
case "$1" in
start)
echo "Starting exem-host-agent: "
{{ EXEM_HOME }}/host/script/binary_start.sh
;;
stop)
echo "Shutting down exem-host-agent: "
{{ EXEM_HOME }}/host/script/binary_stop.sh
;;
restart)
echo "Restarting exem-host-agent: "
{{ EXEM_HOME }}/host/script/binary_stop.sh
{{ EXEM_HOME }}/host/script/binary_start.sh
;;
*)
echo "Usage: service exem-host-agent { start | stop | restart }"
exit 1
esac
exit 0

View File

@@ -0,0 +1,29 @@
#!/bin/bash
# Startup script for exemONE exem-manager-agent
# chkconfig: 345 50 50
# description: exemONE exem-manager-agent
# processname: exem-manager-agent
# directory : MGR_EXEM_MANAGER_HOME={{ EXEM_HOME }}/manager
source /etc/profile
case "$1" in
start)
echo "Starting exem-manager-agent: "
{{ EXEM_HOME }}/manager/script/binary_start.sh
;;
stop)
echo "Shutting down exem-manager-agent: "
{{ EXEM_HOME }}/manager/script/binary_stop.sh
;;
restart)
echo "Restarting exem-manager-agent: "
{{ EXEM_HOME }}/manager/script/binary_stop.sh
{{ EXEM_HOME }}/manager/script/binary_start.sh
;;
*)
echo "Usage: service exem-manager-agent { start | stop | restart }"
exit 1
esac
exit 0

View File

@@ -1,12 +1,12 @@
[Unit]
Description=exem-host-agent
Description=exem-manager-agent
Wants=network-online.target
After=network-online.target
[Service]
Type=forking
PIDFile={{ EXEM_HOME }}/host/data/host_agent_pid
ExecStart={{ EXEM_HOME }}/host/script/binary_start.sh
PIDFile={{ EXEM_HOME }}/manager/data/manager_agent_pid
ExecStart={{ EXEM_HOME }}/manager/script/binary_start.sh
ExecStartPost=/bin/sleep 1
Restart=on-failure
RestartSec=10

View File

@@ -0,0 +1,40 @@
#!/bin/sh
SYSTEMCTL=$(which systemctl 2> /dev/null)
SERVICE=$(which service 2> /dev/null)
CHKCONFIG=$(which chkconfig 2> /dev/null)
######################################################
# (SYSTEMCTL)
######################################################
if [ -n "${SYSTEMCTL}" ]; then
if [ -e "/etc/selinux/config" ]; then
# SELinux setting
SELINUX_OPTION=$(awk -F= '/^SELINUX=/{print $2}' /etc/selinux/config)
if [ ${SELINUX_OPTION} != "disabled" ]; then
chcon -t bin_t {{ EXEM_HOME }}/manager/script/binary_start.sh
chcon -R -t var_run_t {{ EXEM_HOME }}/manager/data
chcon -R -t var_run_t {{ EXEM_HOME }}/manager/service
fi
fi
if [ ! -e "/etc/systemd/system/exem-manager-agent.service" ]; then
systemctl enable {{ EXEM_HOME }}/manager/service/exem-manager-agent.service
fi
systemctl daemon-reload
echo "exem-manager-agent is enabled [service_start.sh]"
systemctl start exem-manager-agent
echo "exem-manager-agent is started [service_start.sh]"
exit 0
######################################################
# (others)
######################################################
else
echo "this OS version that does not support service registration"
exit 1
fi

View File

@@ -1,198 +0,0 @@
#!/bin/sh
#EXEM_NDM_HOME="/{{ EXEM_HOME }}/ndm"
source /{{ EXEM_HOME }}/ndm/bin/reg.env
NDM_STOP_TIMEOUT=10
Usage()
{
echo "Usage : ndm-ctl [version|start|restart|stop]"
echo ""
exit $1
}
CMD_ARGUMENT=$@
BASE_NAME=`basename $0`
case "${BASE_NAME}" in
start)
CMD_ARGUMENT="start"
;;
stop)
CMD_ARGUMENT="stop"
;;
restart)
CMD_ARGUMENT="restart"
;;
version)
CMD_ARGUMENT="version"
;;
mongomonctl)
;;
*)
echo "unknown link. please check link name[$0]."
Usage 1
;;
esac
# option process
if [ -n "${CMD_ARGUMENT}" ];
then
for i in ${CMD_ARGUMENT}
do
# echo "$i"
case "$i" in
start)
ENV_RUN_MODE="start"
RUN_LIST="start"
;;
restart)
ENV_RUN_MODE="restart"
RUN_LIST="stop start"
;;
stop)
ENV_RUN_MODE="stop"
RUN_LIST="stop"
;;
version)
ENV_RUN_MODE="version"
RUN_LIST="version"
;;
help)
Usage 0
;;
*)
Usage 1
;;
esac
done
fi
if [ ! -d "${EXEM_NDM_HOME}" ];then
echo "agent home directory is not exist.[${EXEM_NDM_HOME}]"
exit 1
fi
cd ${EXEM_NDM_HOME} || exit 1
PROCESS_NAME="exem-ndm-agent"
SVC_FILE="ndm-svc"
SVC_PID_FILE="data/svc.pid"
AGENT_PID_FILE="data/ndm-agent.pid"
echo "${PROCESS_NAME} ${ENV_RUN_MODE} --- "
for MODE in ${RUN_LIST}; do
case "${MODE}" in
version)
bin/exem-ndm-agent -v
;;
start)
if [ -f "${SVC_PID_FILE}" ];then
SVC_PID=`cat ${SVC_PID_FILE}`
PROC_COMM=`cat /proc/${SVC_PID}/comm`
if [ $? -ne 0 ];then
PROC_COMM="none"
fi
if [ "${PROC_COMM}" = "${SVC_FILE}" ];then
echo "${PROCESS_NAME} is running."
exit 1
fi
rm -rf ${SVC_PID_FILE}
fi
if [ ! -f "bin/${SVC_FILE}" ];then
echo "bin/${SVC_FILE} is not exist."
exit 2
fi
bin/${SVC_FILE} >> ${EXEM_NDM_HOME}/log/svc.log 2>&1 &
# bin/${SVC_FILE} > /dev/null 2>&1 &
SVC_PID="$!"
echo "SVC_PID[${SVC_PID}]"
echo "${SVC_PID}" > ${SVC_PID_FILE}
;;
stop)
SVC_PID=`cat ${SVC_PID_FILE}`
if [ $? -ne 0 ] || [ "${SVC_PID}" = "" ];then
echo "${PROCESS_NAME} Service is not running."
exit 1
fi
PS_SVC_PID=`ps -ef | grep -v grep | grep ${SVC_PID} | grep ${SVC_FILE}`
if [ ! "${PS_SVC_PID}" = "" ];then
kill -9 ${SVC_PID}
echo "${PROCESS_NAME} Service terminate."
else
echo "${PROCESS_NAME} Service pid is not match[${PS_SVC_PID}/${SVC_PID}]"
fi
rm -rf ${SVC_PID_FILE}
if [ -f "${AGENT_PID_FILE}" ];then
RUN_NDM_PID=`cat ${AGENT_PID_FILE} | tr '\0' '\n'`
rm -rf ${AGENT_PID_FILE}
echo -n "Waiting for ${PROCESS_NAME} process(${RUN_NDM_PID}) exit."
NUM="0"
while [ ${NUM} -lt ${NDM_STOP_TIMEOUT} ]
do
PS_NDM_PID=`ps -ef | grep -v grep | grep ${RUN_NDM_PID} | grep mongomon`
if [ "${PS_NDM_PID}" = "" ];then
break
fi
NUM=`expr ${NUM} + 1`
sleep 1
echo -n "."
done
echo ""
if [ ${NUM} -eq ${NDM_STOP_TIMEOUT} ];then
echo "${PROCESS_NAME} process shutdown wait timed out."
else
echo "${PROCESS_NAME} process terminated."
fi
else
echo "${PROCESS_NAME} process is not running."
fi
;;
*)
Usage 2
;;
esac
done

View File

@@ -1,125 +0,0 @@
#!/bin/sh
source /{{ EXEM_HOME }}/ndm/bin/reg.env
#source /root/test2/bin/reg.env
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
rm -rf $1
# echo "log size is over. remove log file.[size:${LOG_SIZE},file:$1]"
fi
fi
fi
}
PROCESS_NAME="exem-ndm-agent"
PROCESS_PATH="${PROCESS_NAME}"
PID_FILE="ndm-agent.pid"
if [ ! -d "${EXEM_NDM_HOME}" ];then
echo "exem ndm home directory is not exist.[${EXEM_NDM_HOME}]"
exit 1
fi
# working directory is ${EXEM_NDM_HOME}/bin
cd ${EXEM_NDM_HOME} || exit 1
if [ -f "${EXEM_NDM_HOME}/data/${PID_FILE}" ]; then
RUN_PID=`cat ${EXEM_NDM_HOME}/data/${PID_FILE} | tr '\0' '\n' || echo "none"`
else
RUN_PID="none"
fi
PEAK=0
while :
do
# log manage
func_check_log_file "${EXEM_NDM_HOME}/log/svc.log" 1048576
if [ "${RUN_PID}" = "none" ];then
PATH=${EXEM_NDM_HOME}/bin:$PATH ${PROCESS_PATH} > /dev/null 2>&1 &
RUN_PID="$!"
echo "execute ${PROCESS_PATH} process.[${RUN_PID}]"
sleep 3
fi
if [ ! "${RUN_PID}" = "none" ] && [ -f "/proc/${RUN_PID}/cmdline" ];then
# PROC_COMM=`cat /proc/${RUN_PID}/comm || echo "none"`
PROC_COMM=`cat /proc/${RUN_PID}/cmdline | tr '\0' ' ' | awk -F' ' '{print $1}' || echo "none"`
# echo "PROC_COMM[${PROC_COMM}]"
else
PROC_COMM="none"
fi
if [ ! "${PROC_COMM}" = "${PROCESS_PATH}" ];then
echo "${PROCESS_NAME} process is not running.[pid:${RUN_PID}],comm[${PROC_COMM}]"
RUN_PID="none"
fi
##########################################
# check memory peak
CUR_DATE=`date +%d' '%H:%M:%S`
# MONGOMON_PID=`ps -ef | grep -v grep | grep -v vi | grep -v tail | grep -v ctl | grep -v svc | grep ${PROCESS_NAME} | awk -F' ' '{print $2}'`
# if [ -n "${MONGOMON_PID}" ];then
if [ ! "${RUN_PID}" = "none" ];then
# RESULT=`ps -p ${RUN_PID} -o user,pid,pcpu,pmem,rss,sz,size,vsize,cmd --no-heading`
RESULT=`ps -p ${RUN_PID} -o user,pid,pcpu,pmem,rss,sz,size,vsize,cmd --no-heading`
if [ -z "${RESULT}" ];then
echo "${CUR_DATE} get process stat has failed.[${RUN_PID}]"
PEAK=0
fi
RSS=`echo ${RESULT} | awk -F' ' '{print $5}'`
if [ ${RSS} -gt ${PEAK} ];then
OUT_PEAK=" PEAK:${PEAK}/${RSS}"
PEAK=${RSS}
PEAK_STAT="peak"
else
OUT_PEAK=" PEAK:${PEAK}"
PEAK_STAT=""
fi
# echo "${CUR_DATE} ${RESULT}${OUT_PEAK}"
if [ -n "${PEAK_STAT}" ];then
func_check_log_file "peak.log" 1024
echo "${CUR_DATE} ${RESULT}${OUT_PEAK}" >> peak.log
fi
else
echo "${CUR_DATE} ${PROCESS_NAME} is not running."
PEAK=0
fi
sleep 3
done

View File

@@ -1,13 +0,0 @@
#app_name="exem-ndm-agent"
receiver_ip={{ RECEIVER_ADDR }}
receiver_port={{ RECEIVER_PORT | default('9010') }}
#disconnect_exit=no
#syslog_port=514
#snmptrap_port=162
[Debug]
#write_recv_packet=no
#write_send_packet=no

View File

@@ -1,9 +0,0 @@
export EXEM_NDM_HOME=/{{ EXEM_HOME }}/ndm
if [ -z ${LD_LIBRARY_PATH} ];then
LD_LIBRARY_PATH=${EXEM_NDM_HOME}/lib64
else
LD_LIBRARY_PATH=${EXEM_NDM_HOME}/lib64:${LD_LIBRARY_PATH}
fi
export LD_LIBRARY_PATH

View File

@@ -1,198 +0,0 @@
#!/bin/sh
#EXEM_NDM_HOME="/{{ EXEM_HOME }}/ndm"
source /{{ EXEM_HOME }}/ndm/bin/reg.env
NDM_STOP_TIMEOUT=10
Usage()
{
echo "Usage : ndm-ctl [version|start|restart|stop]"
echo ""
exit $1
}
CMD_ARGUMENT=$@
BASE_NAME=`basename $0`
case "${BASE_NAME}" in
start)
CMD_ARGUMENT="start"
;;
stop)
CMD_ARGUMENT="stop"
;;
restart)
CMD_ARGUMENT="restart"
;;
version)
CMD_ARGUMENT="version"
;;
mongomonctl)
;;
*)
echo "unknown link. please check link name[$0]."
Usage 1
;;
esac
# option process
if [ -n "${CMD_ARGUMENT}" ];
then
for i in ${CMD_ARGUMENT}
do
# echo "$i"
case "$i" in
start)
ENV_RUN_MODE="start"
RUN_LIST="start"
;;
restart)
ENV_RUN_MODE="restart"
RUN_LIST="stop start"
;;
stop)
ENV_RUN_MODE="stop"
RUN_LIST="stop"
;;
version)
ENV_RUN_MODE="version"
RUN_LIST="version"
;;
help)
Usage 0
;;
*)
Usage 1
;;
esac
done
fi
if [ ! -d "${EXEM_NDM_HOME}" ];then
echo "agent home directory is not exist.[${EXEM_NDM_HOME}]"
exit 1
fi
cd ${EXEM_NDM_HOME} || exit 1
PROCESS_NAME="exem-ndm-agent"
SVC_FILE="ndm-svc"
SVC_PID_FILE="data/svc.pid"
AGENT_PID_FILE="data/ndm-agent.pid"
echo "${PROCESS_NAME} ${ENV_RUN_MODE} --- "
for MODE in ${RUN_LIST}; do
case "${MODE}" in
version)
bin/exem-ndm-agent -v
;;
start)
if [ -f "${SVC_PID_FILE}" ];then
SVC_PID=`cat ${SVC_PID_FILE}`
PROC_COMM=`cat /proc/${SVC_PID}/comm`
if [ $? -ne 0 ];then
PROC_COMM="none"
fi
if [ "${PROC_COMM}" = "${SVC_FILE}" ];then
echo "${PROCESS_NAME} is running."
exit 1
fi
rm -rf ${SVC_PID_FILE}
fi
if [ ! -f "bin/${SVC_FILE}" ];then
echo "bin/${SVC_FILE} is not exist."
exit 2
fi
bin/${SVC_FILE} >> ${EXEM_NDM_HOME}/log/svc.log 2>&1 &
# bin/${SVC_FILE} > /dev/null 2>&1 &
SVC_PID="$!"
echo "SVC_PID[${SVC_PID}]"
echo "${SVC_PID}" > ${SVC_PID_FILE}
;;
stop)
SVC_PID=`cat ${SVC_PID_FILE}`
if [ $? -ne 0 ] || [ "${SVC_PID}" = "" ];then
echo "${PROCESS_NAME} Service is not running."
exit 1
fi
PS_SVC_PID=`ps -ef | grep -v grep | grep ${SVC_PID} | grep ${SVC_FILE}`
if [ ! "${PS_SVC_PID}" = "" ];then
kill -9 ${SVC_PID}
echo "${PROCESS_NAME} Service terminate."
else
echo "${PROCESS_NAME} Service pid is not match[${PS_SVC_PID}/${SVC_PID}]"
fi
rm -rf ${SVC_PID_FILE}
if [ -f "${AGENT_PID_FILE}" ];then
RUN_NDM_PID=`cat ${AGENT_PID_FILE} | tr '\0' '\n'`
rm -rf ${AGENT_PID_FILE}
echo -n "Waiting for ${PROCESS_NAME} process(${RUN_NDM_PID}) exit."
NUM="0"
while [ ${NUM} -lt ${NDM_STOP_TIMEOUT} ]
do
PS_NDM_PID=`ps -ef | grep -v grep | grep ${RUN_NDM_PID} | grep mongomon`
if [ "${PS_NDM_PID}" = "" ];then
break
fi
NUM=`expr ${NUM} + 1`
sleep 1
echo -n "."
done
echo ""
if [ ${NUM} -eq ${NDM_STOP_TIMEOUT} ];then
echo "${PROCESS_NAME} process shutdown wait timed out."
else
echo "${PROCESS_NAME} process terminated."
fi
else
echo "${PROCESS_NAME} process is not running."
fi
;;
*)
Usage 2
;;
esac
done

View File

@@ -1,26 +1,29 @@
#!/bin/sh
# EXPORT
export EXEM_HOME={{ EXEM_HOME }}
export EXEM_CONTAINER_HOME={{ EXEM_HOME }}/container
export COMMON_RECEIVER_IP={{ RECEIVER_ADDR }}
export COMMON_RECEIVER_PORT={{ RECEIVER_CONTAINER_PORT | default('9009') }}
export CONTAINER_LOG_LEVEL=info
if [ "$1" = "-b" ]; then
{{ EXEM_HOME }}/manager/script/binary_start.sh
else
if [ "$OS_NAME" = "SunOS" ]; then
ID=`/usr/xpg4/bin/id -u`
else
ID=`id -u`
fi
# START
PIDFILE=${EXEM_CONTAINER_HOME}/data/container_agent_pid
if [ "$ID" -eq 0 ]; then
{{ EXEM_HOME }}/manager/script/service_start.sh
if [ "$?" != 0 ]; then
{{ EXEM_HOME }}/manager/script/binary_start.sh
fi
else
echo "No root privileges. Starting without registering service."
if [ -f "${PIDFILE}" ]; then
PID=$(echo -n | cat ${PIDFILE})
IS_RUNNING=$(ps -fp "${PID}" | grep -c exem-container-agent)
if [ "${IS_RUNNING}" -ne 0 ]; then
echo "exem-container-agent is already running (${PID})"
exit
{{ EXEM_HOME }}/manager/script/binary_start.sh
fi
fi
chmod 755 ${EXEM_CONTAINER_HOME}/bin/exem-container-agent
${EXEM_CONTAINER_HOME}/bin/exem-container-agent run
if [ "$?" = 0 ]; then
echo "xmSuccess(0): exem-manager-agent is started"
else
echo "xmError(1): Failed to start exem-manager-agent"
fi

View File

@@ -1,198 +0,0 @@
#!/bin/sh
#EXEM_NDM_HOME="/{{ EXEM_HOME }}/ndm"
source /{{ EXEM_HOME }}/ndm/bin/reg.env
NDM_STOP_TIMEOUT=10
Usage()
{
echo "Usage : ndm-ctl [version|start|restart|stop]"
echo ""
exit $1
}
CMD_ARGUMENT=$@
BASE_NAME=`basename $0`
case "${BASE_NAME}" in
start)
CMD_ARGUMENT="start"
;;
stop)
CMD_ARGUMENT="stop"
;;
restart)
CMD_ARGUMENT="restart"
;;
version)
CMD_ARGUMENT="version"
;;
mongomonctl)
;;
*)
echo "unknown link. please check link name[$0]."
Usage 1
;;
esac
# option process
if [ -n "${CMD_ARGUMENT}" ];
then
for i in ${CMD_ARGUMENT}
do
# echo "$i"
case "$i" in
start)
ENV_RUN_MODE="start"
RUN_LIST="start"
;;
restart)
ENV_RUN_MODE="restart"
RUN_LIST="stop start"
;;
stop)
ENV_RUN_MODE="stop"
RUN_LIST="stop"
;;
version)
ENV_RUN_MODE="version"
RUN_LIST="version"
;;
help)
Usage 0
;;
*)
Usage 1
;;
esac
done
fi
if [ ! -d "${EXEM_NDM_HOME}" ];then
echo "agent home directory is not exist.[${EXEM_NDM_HOME}]"
exit 1
fi
cd ${EXEM_NDM_HOME} || exit 1
PROCESS_NAME="exem-ndm-agent"
SVC_FILE="ndm-svc"
SVC_PID_FILE="data/svc.pid"
AGENT_PID_FILE="data/ndm-agent.pid"
echo "${PROCESS_NAME} ${ENV_RUN_MODE} --- "
for MODE in ${RUN_LIST}; do
case "${MODE}" in
version)
bin/exem-ndm-agent -v
;;
start)
if [ -f "${SVC_PID_FILE}" ];then
SVC_PID=`cat ${SVC_PID_FILE}`
PROC_COMM=`cat /proc/${SVC_PID}/comm`
if [ $? -ne 0 ];then
PROC_COMM="none"
fi
if [ "${PROC_COMM}" = "${SVC_FILE}" ];then
echo "${PROCESS_NAME} is running."
exit 1
fi
rm -rf ${SVC_PID_FILE}
fi
if [ ! -f "bin/${SVC_FILE}" ];then
echo "bin/${SVC_FILE} is not exist."
exit 2
fi
bin/${SVC_FILE} >> ${EXEM_NDM_HOME}/log/svc.log 2>&1 &
# bin/${SVC_FILE} > /dev/null 2>&1 &
SVC_PID="$!"
echo "SVC_PID[${SVC_PID}]"
echo "${SVC_PID}" > ${SVC_PID_FILE}
;;
stop)
SVC_PID=`cat ${SVC_PID_FILE}`
if [ $? -ne 0 ] || [ "${SVC_PID}" = "" ];then
echo "${PROCESS_NAME} Service is not running."
exit 1
fi
PS_SVC_PID=`ps -ef | grep -v grep | grep ${SVC_PID} | grep ${SVC_FILE}`
if [ ! "${PS_SVC_PID}" = "" ];then
kill -9 ${SVC_PID}
echo "${PROCESS_NAME} Service terminate."
else
echo "${PROCESS_NAME} Service pid is not match[${PS_SVC_PID}/${SVC_PID}]"
fi
rm -rf ${SVC_PID_FILE}
if [ -f "${AGENT_PID_FILE}" ];then
RUN_NDM_PID=`cat ${AGENT_PID_FILE} | tr '\0' '\n'`
rm -rf ${AGENT_PID_FILE}
echo -n "Waiting for ${PROCESS_NAME} process(${RUN_NDM_PID}) exit."
NUM="0"
while [ ${NUM} -lt ${NDM_STOP_TIMEOUT} ]
do
PS_NDM_PID=`ps -ef | grep -v grep | grep ${RUN_NDM_PID} | grep mongomon`
if [ "${PS_NDM_PID}" = "" ];then
break
fi
NUM=`expr ${NUM} + 1`
sleep 1
echo -n "."
done
echo ""
if [ ${NUM} -eq ${NDM_STOP_TIMEOUT} ];then
echo "${PROCESS_NAME} process shutdown wait timed out."
else
echo "${PROCESS_NAME} process terminated."
fi
else
echo "${PROCESS_NAME} process is not running."
fi
;;
*)
Usage 2
;;
esac
done

View File

@@ -1,39 +1,29 @@
#!/bin/sh
# EXPORT
export EXEM_HOME={{ EXEM_HOME }}
export EXEM_CONTAINER_HOME={{ EXEM_HOME }}/container
# STOP
PIDFILE=${EXEM_CONTAINER_HOME}/data/container_agent_pid
if [ -f "${PIDFILE}" ]; then
PID=$(echo -n | cat ${PIDFILE})
mv ${PIDFILE} ${PIDFILE}.stopped
# WAITING
LIMIT_CNT=10
CNT=0
while [ ${CNT} -lt ${LIMIT_CNT} ];
do
IS_RUNNING=$(ps -fp "${PID}" | grep -c exem-container-agent)
if [ "${IS_RUNNING}" -ne 0 ]; then
CNT=$((CNT+1))
echo "exem-container-agent is stopping (${PID}) ..."
sleep 1
else
break
fi
done
if [ ${CNT} -ge ${LIMIT_CNT} ]; then
echo "Something is wrong. Check exem-container-agent (${PID})"
exit 1
fi
echo "exem-container-agent is stopped (${PID})"
if [ "$1" = "-b" ]; then
{{ EXEM_HOME }}/manager/script/binary_stop.sh
else
echo "exem-container-agent is not running"
fi
if [ "$OS_NAME" = "SunOS" ]; then
ID=`/usr/xpg4/bin/id -u`
else
ID=`id -u`
fi
if [ "$ID" -eq 0 ]; then
{{ EXEM_HOME }}/manager/script/service_stop.sh
if [ "$?" != 0 ]; then
{{ EXEM_HOME }}/manager/script/binary_stop.sh
fi
else
echo "No root privileges. Stopping without unregistering service."
{{ EXEM_HOME }}/manager/script/binary_stop.sh
fi
fi
if [ "$?" = 0 ]; then
echo "xmSuccess(0): exem-manager-agent is stopped"
else
echo "xmError(1): Failed to stop exem-manager-agent"
fi

View File

@@ -1,32 +0,0 @@
#!/bin/sh
SYSTEMCTL=$(which systemctl 2> /dev/null)
SERVICE=$(which service 2> /dev/null)
CHKCONFIG=$(which chkconfig 2> /dev/null)
if [ "$(id -u)" -ne 0 ]; then
echo "Not a root user. Not support service registration"
echo "Use binary mode"
exit 1
fi
if [ -n "${SYSTEMCTL}" ]; then
# SELinux setting
chcon -t bin_t {{ EXEM_HOME }}/host/script/binary_start.sh
chcon -R -t var_run_t {{ EXEM_HOME }}/host/data
chcon -R -t var_run_t {{ EXEM_HOME }}/host/service
if [ ! -e "/etc/systemd/system/exem-host-agent.service" ]; then
systemctl enable {{ EXEM_HOME }}/host/service/exem-host-agent.service
fi
systemctl daemon-reload
echo "exem-host-agent is enabled"
else
echo "this OS version that does not support service registration"
echo "Use binary mode"
exit 1
fi

View File

@@ -1,5 +0,0 @@
#!/bin/sh
sudo {{ EXEM_HOME }}/host/script/binary_stop.sh
sudo systemctl stop exem-host-agent