Replace LOGPATH with LOGSUFFIX
[policy/engine.git] / packages / base / src / files / install / servers / common / logparser / init.d / logparserd
1 #!/bin/bash
2 #
3 # init script for a Java application
4 #
5
6 function update_monitor() {
7         COMPONENT=$1
8         STATUS=$2
9         if [[ -f ${POLICY_HOME}/etc/monitor/monitor.cfg ]]; then
10                 /bin/sed -i.bak \
11                         -e "s/^${COMPONENT}=.*/${COMPONENT}=${STATUS}/g" \
12                         ${POLICY_HOME}/etc/monitor/monitor.cfg  
13         fi
14 }
15
16 # unmonitored start, does not change monitor status (immutable)
17 function um_start() {
18         JMX_JAVA_OPTS="-Dcom.sun.management.jmxremote"
19         JMX_JAVA_OPTS="${JMX_JAVA_OPTS} -Dcom.sun.management.jmxremote.port=${LOGPARSER_JMX_PORT}"
20         JMX_JAVA_OPTS="${JMX_JAVA_OPTS} -Dcom.sun.management.jmxremote.ssl=false" 
21         JMX_JAVA_OPTS="${JMX_JAVA_OPTS} -Dcom.sun.management.jmxremote.authenticate=false"
22         JVM_JAVA_OPTS="-Xms${LOGPARSER_X_MS_MB}M -Xmx${LOGPARSER_X_MX_MB}M"
23         
24         CMD_JAVA_OPTS="-DPOLICY_LOGS=${POLICY_LOGS}"
25
26         JAVA_OPTS="${JAVA_OPTS} ${JMX_JAVA_OPTS} ${JVM_JAVA_OPTS} ${CMD_JAVA_OPTS}"
27         
28         # Redirects default and error output to a log file
29         cd ${POLICY_HOME}/servers/${COMPONENT}/bin
30         mkdir -p ${POLICY_LOGS}/policy/${COMPONENT} 2>/dev/null
31         nohup $JAVA_HOME/bin/java -jar ${JAVA_OPTS} ${SERVICE} ${SERVER} ${LOGTYPE} >> ${POLICY_LOGS}/policy/${COMPONENT}/stdout 2>&1 &
32 RETVAL=$?
33         RETVAL=$?       
34 }
35
36 # Starts the application
37 function start() {
38         um_start
39         if [[ ${RETVAL} != 0 ]]; then
40                 update_monitor ${COMPONENT} off
41         else
42                 update_monitor ${COMPONENT} on
43         fi
44 }
45
46 # unmonitored stop, does not change monitor status (immutable)
47 function um_stop() {
48         # Kills the application process
49         pkill -u ${POLICY_USER} -f "${SERVICE} ${SERVER} ${LOGTYPE}" -TERM
50         RETVAL=$?
51         if [[ ${RETVAL} != 0 ]]; then
52                 sleep 2
53                 pkill -u ${POLICY_USER} -f "${SERVICE} ${SERVER} ${LOGTYPE}" -KILL
54                 RETVAL=$?
55     fi  
56 }
57
58 # Stops the application
59 function stop() {
60         um_stop
61     update_monitor ${COMPONENT} off     
62 }
63
64 # Show the application status
65 function status() {
66         # check status
67         pid=$(pgrep -f -u ${POLICY_USER} "${SERVICE} ${SERVER} ${LOGTYPE}" 2> /dev/null)
68         RETVAL=$?
69         
70         # If the PID was returned means the application is running
71         if [ ${RETVAL} -eq 0 ] ; then
72                 echo "running with pid ${pid}"
73         else
74                 echo "stopped"
75         fi
76 }
77
78 # Main logic, a simple case to call functions
79
80 # determine if this is a paplp or pdplp component
81 COMPONENT=$(basename $0)
82
83 CONF_FILE="${POLICY_HOME}/servers/${COMPONENT}/bin/parserlog.properties"
84 SERVICE="${POLICY_HOME}/servers/${COMPONENT}/bin/logparser.jar"
85
86 # read properties
87 shopt -s extglob
88 configfile="dos_or_unix" # set the actual path name of your (DOS or Unix) config file
89 while IFS='= ' read lhs rhs
90 do
91     if [[ ! $lhs =~ ^\ *# && -n $lhs ]]; then
92         rhs="${rhs%%\#*}"    # Del in line right comments
93          rhs="${rhs%%*( )}"   # Del trailing spaces
94         rhs="${rhs%\"*}"     # Del opening string quotes 
95          rhs="${rhs#\"*}"     # Del closing string quotes
96          if [[ $lhs != *"."* ]]; then
97                 declare $lhs="$rhs"
98          fi
99    fi
100 done < "${CONF_FILE}"
101 if [ $? -ne 0 ]; then
102         echo "error: cannot source configuration ${CONF_FILE}"
103         exit 1
104 fi
105
106 case "$1" in
107     status)
108         status
109         ;;
110         restart)
111                 stop
112         sleep 2
113         start
114         ;;
115         start)
116         start
117         ;;
118         umstart)
119         um_start
120         ;;            
121         stop)
122                 stop
123         ;;    
124         umstop)
125         um_stop
126         ;;            
127     *)
128         echo "Usage: $0 {start|stop|umstart|umstop|restart|status}"
129         RETVAL=1
130         ;;
131 esac
132
133 exit ${RETVAL}
134