remove_power.sh 6.4 KB
Newer Older
H
Hui Li 已提交
1 2
#!/bin/bash
#
3
# Script to stop the service and uninstall PowerDB, but retain the config, data and log files.
H
Hui Li 已提交
4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33

set -e
#set -x

verMode=edge

RED='\033[0;31m'
GREEN='\033[1;32m'
NC='\033[0m'

#install main path
install_main_dir="/usr/local/power"
data_link_dir="/usr/local/power/data"
log_link_dir="/usr/local/power/log"
cfg_link_dir="/usr/local/power/cfg"
bin_link_dir="/usr/bin"
lib_link_dir="/usr/lib"
lib64_link_dir="/usr/lib64"
inc_link_dir="/usr/include"
install_nginxd_dir="/usr/local/nginxd"

# v1.5 jar dir
#v15_java_app_dir="/usr/local/lib/power"

service_config_dir="/etc/systemd/system"
power_service_name="powerd"
tarbitrator_service_name="tarbitratord"
nginx_service_name="nginxd"
csudo=""
if command -v sudo > /dev/null; then
34
    csudo="sudo "
H
Hui Li 已提交
35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59
fi

initd_mod=0
service_mod=2
if pidof systemd &> /dev/null; then
    service_mod=0
elif $(which service &> /dev/null); then    
    service_mod=1
    service_config_dir="/etc/init.d" 
    if $(which chkconfig &> /dev/null); then
         initd_mod=1 
    elif $(which insserv &> /dev/null); then
        initd_mod=2
    elif $(which update-rc.d &> /dev/null); then
        initd_mod=3
    else
        service_mod=2
    fi
else 
    service_mod=2
fi

function kill_powerd() {
  pid=$(ps -ef | grep "powerd" | grep -v "grep" | awk '{print $2}')
  if [ -n "$pid" ]; then
60
    ${csudo}kill -9 $pid   || :
H
Hui Li 已提交
61 62 63 64 65 66
  fi
}

function kill_tarbitrator() {
  pid=$(ps -ef | grep "tarbitrator" | grep -v "grep" | awk '{print $2}')
  if [ -n "$pid" ]; then
67
    ${csudo}kill -9 $pid   || :
H
Hui Li 已提交
68 69 70 71
  fi
}
function clean_bin() {
    # Remove link
72 73 74 75 76 77 78 79
    ${csudo}rm -f ${bin_link_dir}/power        || :
    ${csudo}rm -f ${bin_link_dir}/powerd       || :
    ${csudo}rm -f ${bin_link_dir}/powerdemo    || :
    ${csudo}rm -f ${bin_link_dir}/powerdump    || :
    ${csudo}rm -f ${bin_link_dir}/rmpower      || :
    ${csudo}rm -f ${bin_link_dir}/tarbitrator  || :
    ${csudo}rm -f ${bin_link_dir}/set_core     || :
    ${csudo}rm -f ${bin_link_dir}/run_taosd.sh || :
H
Hui Li 已提交
80 81 82 83
}

function clean_lib() {
    # Remove link
84 85 86
    ${csudo}rm -f ${lib_link_dir}/libtaos.*      || :
    ${csudo}rm -f ${lib64_link_dir}/libtaos.*    || :
    #${csudo}rm -rf ${v15_java_app_dir}           || :
H
Hui Li 已提交
87 88 89 90
}

function clean_header() {
    # Remove link
91 92 93
    ${csudo}rm -f ${inc_link_dir}/taos.h       || :
    ${csudo}rm -f ${inc_link_dir}/taosdef.h    || :
    ${csudo}rm -f ${inc_link_dir}/taoserror.h  || :
H
Hui Li 已提交
94 95 96 97
}

function clean_config() {
    # Remove link
98
    ${csudo}rm -f ${cfg_link_dir}/*            || :    
H
Hui Li 已提交
99 100 101 102
}

function clean_log() {
    # Remove link
103
    ${csudo}rm -rf ${log_link_dir}    || :
H
Hui Li 已提交
104 105 106 107 108 109
}

function clean_service_on_systemd() {
    power_service_config="${service_config_dir}/${power_service_name}.service"
    if systemctl is-active --quiet ${power_service_name}; then
        echo "PowerDB powerd is running, stopping it..."
110
        ${csudo}systemctl stop ${power_service_name} &> /dev/null || echo &> /dev/null
H
Hui Li 已提交
111
    fi
112 113
    ${csudo}systemctl disable ${power_service_name} &> /dev/null || echo &> /dev/null
    ${csudo}rm -f ${power_service_config}
H
Hui Li 已提交
114 115 116
    
    tarbitratord_service_config="${service_config_dir}/${tarbitrator_service_name}.service"
    if systemctl is-active --quiet ${tarbitrator_service_name}; then
117
        echo "PowerDB tarbitrator is running, stopping it..."
118
        ${csudo}systemctl stop ${tarbitrator_service_name} &> /dev/null || echo &> /dev/null
H
Hui Li 已提交
119
    fi
120 121
    ${csudo}systemctl disable ${tarbitrator_service_name} &> /dev/null || echo &> /dev/null
    ${csudo}rm -f ${tarbitratord_service_config}
H
Hui Li 已提交
122 123 124 125 126
    
    if [ "$verMode" == "cluster" ]; then
		  nginx_service_config="${service_config_dir}/${nginx_service_name}.service"	
   	 	if [ -d ${bin_dir}/web ]; then
   	    if systemctl is-active --quiet ${nginx_service_name}; then
127
   	        echo "Nginx for PowerDB is running, stopping it..."
128
   	        ${csudo}systemctl stop ${nginx_service_name} &> /dev/null || echo &> /dev/null
H
Hui Li 已提交
129
   	    fi
130
   	    ${csudo}systemctl disable ${nginx_service_name} &> /dev/null || echo &> /dev/null
H
Hui Li 已提交
131
      
132
   	    ${csudo}rm -f ${nginx_service_config}
H
Hui Li 已提交
133 134 135 136 137 138 139
   	  fi
    fi 
}

function clean_service_on_sysvinit() {
    if pidof powerd &> /dev/null; then
        echo "PowerDB powerd is running, stopping it..."
140
        ${csudo}service powerd stop || :
H
Hui Li 已提交
141 142 143 144
    fi
    
    if pidof tarbitrator &> /dev/null; then
        echo "PowerDB tarbitrator is running, stopping it..."
145
        ${csudo}service tarbitratord stop || :
H
Hui Li 已提交
146 147 148 149
    fi
    
    if ((${initd_mod}==1)); then    
      if [ -e ${service_config_dir}/powerd ]; then 
150
        ${csudo}chkconfig --del powerd || :
H
Hui Li 已提交
151 152
      fi
      if [ -e ${service_config_dir}/tarbitratord ]; then 
153
        ${csudo}chkconfig --del tarbitratord || :
H
Hui Li 已提交
154 155 156
      fi
    elif ((${initd_mod}==2)); then   
      if [ -e ${service_config_dir}/powerd ]; then 
157
        ${csudo}insserv -r powerd || :
H
Hui Li 已提交
158 159
      fi
      if [ -e ${service_config_dir}/tarbitratord ]; then 
160
        ${csudo}insserv -r tarbitratord || :
H
Hui Li 已提交
161 162 163
      fi
    elif ((${initd_mod}==3)); then  
      if [ -e ${service_config_dir}/powerd ]; then 
164
        ${csudo}update-rc.d -f powerd remove || :
H
Hui Li 已提交
165 166
      fi
      if [ -e ${service_config_dir}/tarbitratord ]; then 
167
        ${csudo}update-rc.d -f tarbitratord remove || :
H
Hui Li 已提交
168 169 170
      fi
    fi
    
171 172
    ${csudo}rm -f ${service_config_dir}/powerd || :
    ${csudo}rm -f ${service_config_dir}/tarbitratord || :
H
Hui Li 已提交
173 174
   
    if $(which init &> /dev/null); then
175
        ${csudo}init q || :
H
Hui Li 已提交
176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202
    fi
}

function clean_service() {
    if ((${service_mod}==0)); then
        clean_service_on_systemd
    elif ((${service_mod}==1)); then
        clean_service_on_sysvinit
    else
        kill_powerd
        kill_tarbitrator
    fi
}

# Stop service and disable booting start.
clean_service
# Remove binary file and links
clean_bin
# Remove header file.
clean_header
# Remove lib file
clean_lib
# Remove link log directory
clean_log
# Remove link configuration file
clean_config
# Remove data link directory
203
${csudo}rm -rf ${data_link_dir}    || : 
H
Hui Li 已提交
204

205 206
${csudo}rm -rf ${install_main_dir}
${csudo}rm -rf ${install_nginxd_dir}
H
Hui Li 已提交
207 208 209 210 211 212 213 214
if [[ -e /etc/os-release ]]; then
  osinfo=$(awk -F= '/^NAME/{print $2}' /etc/os-release)
else
  osinfo=""
fi

#if echo $osinfo | grep -qwi "ubuntu" ; then
##  echo "this is ubuntu system"
215
#   ${csudo}rm -f /var/lib/dpkg/info/tdengine* || :
H
Hui Li 已提交
216 217
#elif echo $osinfo | grep -qwi "debian" ; then
##  echo "this is debian system"
218
#   ${csudo}rm -f /var/lib/dpkg/info/tdengine* || :
H
Hui Li 已提交
219 220
#elif  echo $osinfo | grep -qwi "centos" ; then
##  echo "this is centos system"
221
#  ${csudo}rpm -e --noscripts tdengine || :
H
Hui Li 已提交
222 223 224
#fi

echo -e "${GREEN}PowerDB is removed successfully!${NC}"
225
echo