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