#!/bin/bash #stop proc killP() { pkill $1 ps aux | grep "$1" | grep -q -v grep PROCESS_STATUS=$? if [ $PROCESS_STATUS -ne 0 ]; then pkill $1 fi } startSdkCompareWithOneParam(){ number=`ps -ef | grep "sdkCompare" | grep -v grep | wc -l` echo $number if [ $number -ne 2 ]; then killP sdkCompare sleep 2 date +%D-%T" sdkCompare start" nohup ./sdkCompare $1 >/dev/null 2>&1 & nohup ./sdkCompare $1 -target=es >/dev/null 2>&1 & return 1 else echo "sdkCompare is exists" return 0 fi } cd /opt/vasystem/bin patchPath=$1 zipPath=$2 chunkPath=$3 files=$(ls $patchPath) echo "patchPath: " $patchPath if [ ! -d $patchPath ]; then echo "$patchPath not exist,patch update fail" else for item in $files do if [ -f $patchPath/$item ]; then echo "start update proc ${item}" killP $item sleep 2 cp $patchPath/$item /opt/vasystem/bin chmod +x /opt/vasystem/bin/$item if [ "$item" = "sdkCompare" ]; then startSdkCompareWithOneParam -e=pro echo "update ${item} success" else nohup ./$item >/dev/null 2>&1 & echo "update ${item} success" fi else if [ "$item" = "dist" ]; then echo "update web dist" cp -r $patchPath/$item /opt/vasystem/web/dist else echo "unknown directory ${item}" fi fi done sleep 3 echo "patch update success" fi rm -rf $patchPath $zipPath $chunkPath