#!/usr/bin/sh OLD_IFS="$IFS" IFS=$'\n' serverName=$1 sequence=$2 httpport=$3 echo "Check Server Process($serverName,$sequence,$httpport) is running or not." for line in `ps -eo pid,args |grep java|tr -s " " `; do #echo $line IFS=$' ' line=(`echo $line`); processId=${line[0]} #echo "ProcessID=$processId" # shellcheck disable=SC2068 for i in ${!line[@]}; do tempSplit=(${line[i]}) array=(${tempSplit//=/ }) if [[ "$tempSplit" =~ ^-Dsvr.* ]]; then tempServerName=${array[1]} #echo $tempServerName elif [[ "$tempSplit" =~ ^-DSeq.* ]]; then tempProcName=${array[1]} #echo $tempProcName elif [[ "$tempSplit" =~ ^-Dhttp.* ]]; then tempHttpPortName=${array[1]} #echo $tempHttpPortName fi done if [ "$serverName" = "$tempServerName" -a "$tempProcName" = "$sequence" ] || [ "$tempHttpPortName" = "$httpport" ]; then echo "$processId,serverName($tempServerName, $tempProcName, httpport=$tempHttpPortName) is running ,please check serverName and SequenceNumber or httpport , stopServer or execute this script" IFS=$OLD_IFS exit 1 fi IFS=$'\n' done IFS=$OLD_IFS