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