This is an automated email from the ASF dual-hosted git repository.

qiaojialin pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/iotdb.git


The following commit(s) were added to refs/heads/master by this push:
     new 13c732b43a Scripts of stop and remove datanode (#5894)
13c732b43a is described below

commit 13c732b43a307fe2ecbf6cd990cc537f8c73eceb
Author: Mrquan <[email protected]>
AuthorDate: Sat May 14 09:35:11 2022 +0800

    Scripts of stop and remove datanode (#5894)
---
 .../assembly/resources/sbin/remove-datanode.bat    | 109 +++++++++++++++++++++
 .../src/assembly/resources/sbin/remove-datanode.sh |  72 ++++++++++++++
 .../src/assembly/resources/sbin/stop-datanode.sh   |  20 +---
 3 files changed, 186 insertions(+), 15 deletions(-)

diff --git a/server/src/assembly/resources/sbin/remove-datanode.bat 
b/server/src/assembly/resources/sbin/remove-datanode.bat
new file mode 100644
index 0000000000..45e18b375b
--- /dev/null
+++ b/server/src/assembly/resources/sbin/remove-datanode.bat
@@ -0,0 +1,109 @@
+@REM
+@REM Licensed to the Apache Software Foundation (ASF) under one
+@REM or more contributor license agreements.  See the NOTICE file
+@REM distributed with this work for additional information
+@REM regarding copyright ownership.  The ASF licenses this file
+@REM to you under the Apache License, Version 2.0 (the
+@REM "License"); you may not use this file except in compliance
+@REM with the License.  You may obtain a copy of the License at
+@REM
+@REM     http://www.apache.org/licenses/LICENSE-2.0
+@REM
+@REM Unless required by applicable law or agreed to in writing,
+@REM software distributed under the License is distributed on an
+@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+@REM KIND, either express or implied.  See the License for the
+@REM specific language governing permissions and limitations
+@REM under the License.
+@REM
+
+@echo off
+echo ````````````````````````
+echo Starting to remove a DataNode
+echo ````````````````````````
+
+PATH %PATH%;%JAVA_HOME%\bin\
+set "FULL_VERSION="
+set "MAJOR_VERSION="
+set "MINOR_VERSION="
+
+
+for /f tokens^=2-5^ delims^=.-_+^" %%j in ('java -fullversion 2^>^&1') do (
+       set "FULL_VERSION=%%j-%%k-%%l-%%m"
+       IF "%%j" == "1" (
+           set "MAJOR_VERSION=%%k"
+           set "MINOR_VERSION=%%l"
+       ) else (
+           set "MAJOR_VERSION=%%j"
+           set "MINOR_VERSION=%%k"
+       )
+)
+
+set JAVA_VERSION=%MAJOR_VERSION%
+
+IF NOT %JAVA_VERSION% == 8 (
+       IF NOT %JAVA_VERSION% == 11 (
+               echo IoTDB only supports jdk8 or jdk11, please check your java 
version.
+               goto finally
+       )
+)
+
+if "%OS%" == "Windows_NT" setlocal
+
+pushd %~dp0..
+if NOT DEFINED IOTDB_HOME set IOTDB_HOME=%cd%
+popd
+
+set IOTDB_CONF=%IOTDB_HOME%\conf
+set IOTDB_LOGS=%IOTDB_HOME%\logs
+
+@setlocal ENABLEDELAYEDEXPANSION ENABLEEXTENSIONS
+set CONF_PARAMS=-r
+set is_conf_path=false
+for %%i in (%*) do (
+       set CONF_PARAMS=!CONF_PARAMS! %%i
+)
+
+if NOT DEFINED MAIN_CLASS set MAIN_CLASS=org.apache.iotdb.db.service.DataNode
+if NOT DEFINED JAVA_HOME goto :err
+
+@REM 
-----------------------------------------------------------------------------
+@REM JVM Opts we'll use in legacy run or installation
+set JAVA_OPTS=-ea^
+ -Dlogback.configurationFile="%IOTDB_CONF%\logback.xml"^
+ -DIOTDB_HOME="%IOTDB_HOME%"^
+ -DTSFILE_HOME="%IOTDB_HOME%"^
+ -DIOTDB_CONF="%IOTDB_CONF%"
+
+@REM ***** CLASSPATH library setting *****
+@REM Ensure that any user defined CLASSPATH variables are not used on startup
+set CLASSPATH="%IOTDB_HOME%\lib"
+
+@REM For each jar in the IOTDB_HOME lib directory call append to build the 
CLASSPATH variable.
+set CLASSPATH=%CLASSPATH%;"%IOTDB_HOME%\lib\*"
+set CLASSPATH=%CLASSPATH%;iotdb.db.service.DataNode
+goto okClasspath
+
+:append
+set CLASSPATH=%CLASSPATH%;%1
+goto :eof
+
+@REM 
-----------------------------------------------------------------------------
+:okClasspath
+
+rem echo CLASSPATH: %CLASSPATH%
+
+"%JAVA_HOME%\bin\java" %JAVA_OPTS% %IOTDB_HEAP_OPTS% -cp %CLASSPATH% 
%IOTDB_JMX_OPTS% %MAIN_CLASS% %CONF_PARAMS%
+goto finally
+
+:err
+echo JAVA_HOME environment variable must be set!
+pause
+
+
+@REM 
-----------------------------------------------------------------------------
+:finally
+
+pause
+
+ENDLOCAL
\ No newline at end of file
diff --git a/server/src/assembly/resources/sbin/remove-datanode.sh 
b/server/src/assembly/resources/sbin/remove-datanode.sh
new file mode 100644
index 0000000000..350e012d48
--- /dev/null
+++ b/server/src/assembly/resources/sbin/remove-datanode.sh
@@ -0,0 +1,72 @@
+#!/bin/sh
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+
+echo ---------------------
+echo "Starting to remove a DataNode"
+echo ---------------------
+
+if [ -z "${IOTDB_HOME}" ]; then
+  export IOTDB_HOME="`dirname "$0"`/.."
+fi
+
+IOTDB_CONF=${IOTDB_HOME}/conf
+
+CONF_PARAMS="-r "$*
+
+if [ -n "$JAVA_HOME" ]; then
+    for java in "$JAVA_HOME"/bin/amd64/java "$JAVA_HOME"/bin/java; do
+        if [ -x "$java" ]; then
+            JAVA="$java"
+            break
+        fi
+    done
+else
+    JAVA=java
+fi
+
+if [ -z $JAVA ] ; then
+    echo Unable to find java executable. Check JAVA_HOME and PATH environment 
variables.  > /dev/stderr
+    exit 1;
+fi
+
+CLASSPATH=""
+for f in ${IOTDB_HOME}/lib/*.jar; do
+  CLASSPATH=${CLASSPATH}":"$f
+done
+classname=org.apache.iotdb.db.service.DataNode
+
+launch_service()
+{
+       class="$1"
+       iotdb_parms="-Dlogback.configurationFile=${IOTDB_CONF}/logback.xml"
+       iotdb_parms="$iotdb_parms -DIOTDB_HOME=${IOTDB_HOME}"
+       iotdb_parms="$iotdb_parms -DTSFILE_HOME=${IOTDB_HOME}"
+       iotdb_parms="$iotdb_parms -DIOTDB_CONF=${IOTDB_CONF}"
+       iotdb_parms="$iotdb_parms -Dname=iotdb\.IoTDB"
+       exec "$JAVA" $iotdb_parms $IOTDB_JMX_OPTS -cp "$CLASSPATH" "$class" 
$CONF_PARAMS
+       return $?
+}
+
+# Start up the service
+launch_service "$classname"
+
+exit $?
+
+
diff --git a/server/src/assembly/resources/sbin/stop-datanode.sh 
b/server/src/assembly/resources/sbin/stop-datanode.sh
index efbbd43605..10e19c5aa9 100644
--- a/server/src/assembly/resources/sbin/stop-datanode.sh
+++ b/server/src/assembly/resources/sbin/stop-datanode.sh
@@ -20,20 +20,10 @@
 
 
 PIDS=$(ps ax | grep -i 'DataNode' | grep java | grep -v grep | awk '{print 
$1}')
-sig=0
-for every_pid in ${PIDS}
-do
-  cwd_path=$(ls -l /proc/$every_pid | grep "cwd ->" | grep -v grep | awk 
'{print $NF}')
-  pwd_path=$(/bin/pwd)
-  if [[ $pwd_path =~ $cwd_path ]]; then
-    kill -s TERM $every_pid
-    echo "close IoTDB"
-    sig=1
-  fi
-done
-
-if [ $sig -eq 0 ]; then
-  echo "No IoTDB server to stop"
-  exit 1
+if [ ! $PIDS ];then
+  echo "No DataNode to stop"
+else
+  echo "Stop DataNode"
+  jps | grep -w DataNode | grep -v grep | awk '{print $1}'  | xargs kill -9
 fi
 

Reply via email to