Add manage_descend_v2.sh
This commit is contained in:
commit
62fd037631
183
manage_descend_v2.sh
Normal file
183
manage_descend_v2.sh
Normal file
@ -0,0 +1,183 @@
|
||||
#!/bin/bash
|
||||
|
||||
MAIN_CLASS=descend.admin.Server
|
||||
jarFile=Descend-1.10.3.jar
|
||||
|
||||
applicationsDeploymentPath=/opt/applications
|
||||
applicationName=S6_Descend
|
||||
thisApplicationPath=$applicationsDeploymentPath/$applicationName
|
||||
libDir=$thisApplicationPath/lib
|
||||
distDir=$thisApplicationPath/dist
|
||||
runDir=$thisApplicationPath/run
|
||||
logFile=$thisApplicationPath/logs/${applicationName}-GENERAL.log
|
||||
pidFile=$runDir/${applicationName}.pid
|
||||
jarToLoad=$distDir/$jarFile
|
||||
|
||||
JAVA_CMD=/opt/software/jdk1.8.0_241/bin/java
|
||||
appPort=1235
|
||||
|
||||
MAX_MEMORY=2560m
|
||||
MIN_MEMORY=256m
|
||||
MIN_PERM=256m
|
||||
MAX_PERM=512m
|
||||
|
||||
keystore=$thisApplicationPath/certs/IMGHTTP_2026.pfx
|
||||
keypass=$(cat $thisApplicationPath/certs/p12.pass)
|
||||
|
||||
NodeIP=85.112.179.22
|
||||
|
||||
cd "$thisApplicationPath" || {
|
||||
echo "Failed to change directory to $thisApplicationPath"
|
||||
exit 1
|
||||
}
|
||||
|
||||
|
||||
function check_status {
|
||||
if [ ! -f "$pidFile" ]; then
|
||||
return 1
|
||||
fi
|
||||
|
||||
pid=$(tail -1 "$pidFile" 2>/dev/null)
|
||||
if [ -z "$pid" ]; then
|
||||
return 1
|
||||
fi
|
||||
|
||||
if ps -p "$pid" > /dev/null 2>&1; then
|
||||
if netstat -an | grep ":$appPort" | grep LISTEN > /dev/null; then
|
||||
return 0
|
||||
else
|
||||
# Process running but port not listening - partial failure
|
||||
return 1
|
||||
fi
|
||||
else
|
||||
# Process not running
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
function check_pid {
|
||||
if [ ! -f "$pidFile" ]; then
|
||||
return 1
|
||||
fi
|
||||
|
||||
pid=$(tail -1 "$pidFile" 2>/dev/null)
|
||||
if [ -z "$pid" ]; then
|
||||
return 1
|
||||
fi
|
||||
|
||||
if ps -p "$pid" > /dev/null 2>&1; then
|
||||
return 0
|
||||
else
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
function stop_process {
|
||||
echo "Checking if process is running..."
|
||||
check_pid
|
||||
if [ $? -eq 0 ]; then
|
||||
pid=$(tail -1 "$pidFile")
|
||||
echo "Process running with pid $pid, stopping..."
|
||||
kill "$pid"
|
||||
# Wait for process to die gracefully
|
||||
for i in {1..10}; do
|
||||
sleep 1
|
||||
if ! ps -p "$pid" > /dev/null 2>&1; then
|
||||
echo "Process stopped gracefully."
|
||||
break
|
||||
fi
|
||||
done
|
||||
# If app doesn't die after normal kill, force kill
|
||||
if ps -p "$pid" > /dev/null 2>&1; then
|
||||
echo "Process did not stop, sending SIGKILL..."
|
||||
kill -9 "$pid"
|
||||
sleep 1
|
||||
fi
|
||||
# Clean up PID file
|
||||
> "$pidFile"
|
||||
echo "Process killed and PID file cleared."
|
||||
else
|
||||
echo "Process not running."
|
||||
fi
|
||||
}
|
||||
|
||||
function start_process {
|
||||
if [ "$2" != "" ]; then
|
||||
MAIN_CLASS="$2"
|
||||
echo "Using custom main class: $MAIN_CLASS"
|
||||
else
|
||||
echo "Using default main class: $MAIN_CLASS"
|
||||
fi
|
||||
|
||||
echo "Building CLASSPATH..."
|
||||
CLASSPATH="$jarToLoad:"
|
||||
for file in "$libDir"/*.jar; do
|
||||
CLASSPATH="${CLASSPATH}${file}:"
|
||||
done
|
||||
|
||||
echo "Starting Descend process..."
|
||||
ulimit -n 65535
|
||||
|
||||
nohup $JAVA_CMD \
|
||||
-Djavax.net.ssl.keyStoreType=pkcs12 \
|
||||
-Djavax.net.ssl.keyStore="$keystore" \
|
||||
-Djavax.net.ssl.keyStorePassword="$keypass" \
|
||||
-cp "$CLASSPATH" \
|
||||
-Xmx$MAX_MEMORY -Xms$MIN_MEMORY \
|
||||
-XX:PermSize=$MIN_PERM -XX:MaxPermSize=$MAX_PERM \
|
||||
-DAPPNAME=$applicationName \
|
||||
-Djava.rmi.server.hostname=$NodeIP \
|
||||
-Dcom.sun.management.jmxremote=true \
|
||||
-Dcom.sun.management.jmxremote.port=$appPort \
|
||||
-Dcom.sun.management.jmxremote.authenticate=false \
|
||||
-Dcom.sun.management.jmxremote.ssl=true \
|
||||
"$MAIN_CLASS" > "$logFile" 2>&1 &
|
||||
|
||||
echo $! > "$pidFile"
|
||||
sleep 5
|
||||
|
||||
check_pid
|
||||
if [ $? -eq 0 ]; then
|
||||
echo "Process started with pid $(tail -1 $pidFile)"
|
||||
nohup curl -u "admincontrol:tuow90MNW" \
|
||||
http://servercs6.msgtoolbox.com/smsadm/synced/scendadmin/descendsmpp/activateall.php \
|
||||
> /dev/null 2>&1 &
|
||||
exit 0
|
||||
else
|
||||
echo "Process failed to stay up."
|
||||
stop_process
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
#Main
|
||||
case "$1" in
|
||||
start)
|
||||
start_process "$@"
|
||||
;;
|
||||
|
||||
stop)
|
||||
stop_process
|
||||
;;
|
||||
|
||||
status)
|
||||
check_status
|
||||
if [ $? -eq 0 ]; then
|
||||
echo "Process running with pid $(tail -1 "$pidFile")"
|
||||
exit 0
|
||||
else
|
||||
echo "Process not running"
|
||||
exit 3
|
||||
fi
|
||||
;;
|
||||
|
||||
restart)
|
||||
stop_process
|
||||
start_process "$@"
|
||||
;;
|
||||
|
||||
*)
|
||||
echo "Usage: $0 {start|stop|status|restart}"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user