#!/bin/sh

. ${curdir}/${predir}funcutil

fn_agentstatus() {
    if [ ! -f ${td_service_root}/${td_service_file} ] ; then
        fn_syslang statusagentnotfound | tee -a ${td_log_dir}/${td_log_file}
        return 1
    fi
    agentid=`LANG=C ps -ef | grep "${td_service_root}/${td_service_file}" | grep -v grep | tr -s ' ' | awk -F' ' '{print $2}'`
    if [ "${agentid}" != "" ] ; then
        fn_syslang statusagentstart | tee -a ${td_log_dir}/${td_log_file}
        return 0
    else
        fn_syslang statusagentstop | tee -a ${td_log_dir}/${td_log_file}
        return 100
    fi
}

fn_agentstop() {

    . ${curdir}/${predir}funcdaemon
    fn_daemonstop

    agentid=`LANG=C ps -ef | grep "${td_service_root}/${td_service_file}" | grep -v grep | tr -s ' ' | awk -F' ' '{print $2}' | head -1`
    if [ "${agentid}" != "" ] ; then
        printf "`fn_syslang stopagentbegin`" | tee -a ${td_log_dir}/${td_log_file}
        kill ${agentid} >> ${td_log_dir}/${td_log_file} 2>&1 &
        fn_agentkill
        fn_syslang actiondone | tee -a ${td_log_dir}/${td_log_file}
    fi

}

fn_agentkill() {
    sleep 5
    agentid=`LANG=C ps -ef | grep "${td_service_root}/${td_service_file}" | grep -v grep | tr -s ' ' | awk -F' ' '{print $2}' | head -1`
    if [ "${agentid}" != "" ] ; then
        kill -9 ${agentid} >> ${td_log_dir}/${td_log_file} 2>&1 &
        fn_agentkill
    fi
}

fn_agentstart() {
    agentid=`LANG=C ps -ef | grep "${td_service_root}/${td_service_file}" | grep -v grep | tr -s ' ' | awk -F' ' '{print $2}'`
    if [ "${agentid}" = "" ] ; then
        . ${curdir}/${predir}funcdaemon
        fn_daemonstart

        printf "`fn_syslang startagentbegin`" | tee -a ${td_log_dir}/${td_log_file}
        fn_syscreatelogdir ${td_log_running}

        # check os
        fn_sysCheckosname
        . ${curdir}/${predir}funcagentui
        [ -f ${curdir}/${predir}funcagentui_${distosname} ] && . ${curdir}/${predir}funcagentui_${distosname}
        [ -f ${curdir}/${predir}funcagentui_${fullosname} ] && . ${curdir}/${predir}funcagentui_${fullosname}
        fn_agentuiremove
        fn_agentuiinst

        chmod 770 ${td_service_root}/${td_service_file}
        chmod 755 ${td_service_root}/${td_agentui_file}
        chmod 755 ${td_service_root}/${td_agentui_runfile}
        chmod 755 ${td_service_root}/${td_agentui_autorunfile}

        LC_ALL=C LANG=C nohup ${td_service_root}/${td_service_file} >> ${td_log_dir}/${td_log_running} 2>&1 &
        fn_syslang actiondone | tee -a ${td_log_dir}/${td_log_file}
    fi
}

fn_agentrebootreq()
{
    fn_syslang agentneedreboot | tee -a ${td_log_dir}/${td_log_file}
}