From 987249f4411497805ad77ca8272b73396ac298f2 Mon Sep 17 00:00:00 2001 From: huili Date: Mon, 26 Aug 2019 16:43:41 +0800 Subject: [PATCH] [NONE] --- packaging/deb/DEBIAN/preinst | 16 ++++------- packaging/deb/DEBIAN/prerm | 34 ++++++++++++++++++++-- packaging/rpm/tdengine.spec | 32 +++++++++++++++++++-- packaging/tools/make_install.sh | 2 +- packaging/tools/preun.sh | 50 +++++++++++++++++++++++---------- 5 files changed, 102 insertions(+), 32 deletions(-) diff --git a/packaging/deb/DEBIAN/preinst b/packaging/deb/DEBIAN/preinst index ce5a7eb96f..472d853637 100644 --- a/packaging/deb/DEBIAN/preinst +++ b/packaging/deb/DEBIAN/preinst @@ -5,20 +5,15 @@ if command -v sudo > /dev/null; then csudo="sudo" fi -function is_using_systemd() { - if pidof systemd &> /dev/null; then - return 0 - else - return 1 - fi -} - # Stop the service if running if pidof taosd &> /dev/null; then - if is_using_systemd; then + if pidof systemd &> /dev/null; then ${csudo} systemctl stop taosd || : - else + elif $(which insserv &> /dev/null); then ${csudo} service taosd stop || : + else + pid=$(ps -ef | grep "taosd" | grep -v "grep" | awk '{print $2}') + ${csudo} kill -9 ${pid} || : fi echo "Stop taosd service success!" sleep 1 @@ -33,4 +28,3 @@ fi # there can not libtaos.so*, otherwise ln -s error ${csudo} rm -f ${install_main_dir}/driver/libtaos* || : - diff --git a/packaging/deb/DEBIAN/prerm b/packaging/deb/DEBIAN/prerm index e5a7c027a3..1af6a04943 100644 --- a/packaging/deb/DEBIAN/prerm +++ b/packaging/deb/DEBIAN/prerm @@ -7,6 +7,34 @@ if command -v sudo > /dev/null; then csudo="sudo" fi -${csudo} chmod -R 744 ${insmetaPath} -cd ${insmetaPath} -${csudo} ./preun.sh +${csudo} chmod -R 744 ${insmetaPath} || : +#cd ${insmetaPath} +#${csudo} ./preun.sh +if [ -f ${insmetaPath}/preun.sh ]; then + cd ${insmetaPath} + ${csudo} ./preun.sh +else + bin_link_dir="/usr/bin" + lib_link_dir="/usr/lib" + inc_link_dir="/usr/include" + + data_link_dir="/usr/local/taos/data" + log_link_dir="/usr/local/taos/log" + cfg_link_dir="/usr/local/taos/cfg" + + # Remove all links + ${csudo} rm -f ${bin_link_dir}/taos || : + ${csudo} rm -f ${bin_link_dir}/taosd || : + ${csudo} rm -f ${bin_link_dir}/taosdemo || : + ${csudo} rm -f ${bin_link_dir}/taosdump || : + ${csudo} rm -f ${cfg_link_dir}/* || : + ${csudo} rm -f ${inc_link_dir}/taos.h || : + ${csudo} rm -f ${lib_link_dir}/libtaos.* || : + + ${csudo} rm -f ${log_link_dir} || : + ${csudo} rm -f ${data_link_dir} || : + + pid=$(ps -ef | grep "taosd" | grep -v "grep" | awk '{print $2}') + ${csudo} kill -9 ${pid} || : +fi + diff --git a/packaging/rpm/tdengine.spec b/packaging/rpm/tdengine.spec index adc2e33c48..7b0a1afd6e 100644 --- a/packaging/rpm/tdengine.spec +++ b/packaging/rpm/tdengine.spec @@ -119,8 +119,36 @@ if command -v sudo > /dev/null; then fi # only remove package to call preun.sh, not but update(2) if [ $1 -eq 0 ];then - cd %{homepath}/script - ${csudo} ./preun.sh + #cd %{homepath}/script + #${csudo} ./preun.sh + + if [ -f %{homepath}/script/preun.sh ]; then + cd %{homepath}/script + ${csudo} ./preun.sh + else + bin_link_dir="/usr/bin" + lib_link_dir="/usr/lib" + inc_link_dir="/usr/include" + + data_link_dir="/usr/local/taos/data" + log_link_dir="/usr/local/taos/log" + cfg_link_dir="/usr/local/taos/cfg" + + # Remove all links + ${csudo} rm -f ${bin_link_dir}/taos || : + ${csudo} rm -f ${bin_link_dir}/taosd || : + ${csudo} rm -f ${bin_link_dir}/taosdemo || : + ${csudo} rm -f ${bin_link_dir}/taosdump || : + ${csudo} rm -f ${cfg_link_dir}/* || : + ${csudo} rm -f ${inc_link_dir}/taos.h || : + ${csudo} rm -f ${lib_link_dir}/libtaos.* || : + + ${csudo} rm -f ${log_link_dir} || : + ${csudo} rm -f ${data_link_dir} || : + + pid=$(ps -ef | grep "taosd" | grep -v "grep" | awk '{print $2}') + ${csudo} kill -9 ${pid} || : + fi fi # Scripts executed after uninstall diff --git a/packaging/tools/make_install.sh b/packaging/tools/make_install.sh index e070017a53..19e7cc4efe 100755 --- a/packaging/tools/make_install.sh +++ b/packaging/tools/make_install.sh @@ -61,7 +61,7 @@ fi function kill_taosd() { pid=$(ps -ef | grep "taosd" | grep -v "grep" | awk '{print $2}') - ${csudo} kill -9 pid || : + ${csudo} kill -9 ${pid} || : } function install_main_path() { diff --git a/packaging/tools/preun.sh b/packaging/tools/preun.sh index b245d7bd83..4566db1b5a 100755 --- a/packaging/tools/preun.sh +++ b/packaging/tools/preun.sh @@ -22,18 +22,28 @@ if command -v sudo > /dev/null; then csudo="sudo" fi -function is_using_systemd() { - if pidof systemd &> /dev/null; then - return 0 - else - return 1 - fi -} - -if ! is_using_systemd; then +initd_mod=0 +service_mod=2 +if pidof systemd &> /dev/null; then + service_mod=0 +elif $(which insserv &> /dev/null); then + service_mod=1 + initd_mod=1 + service_config_dir="/etc/init.d" +elif $(which update-rc.d &> /dev/null); then + service_mod=1 + initd_mod=2 service_config_dir="/etc/init.d" +else + service_mod=2 fi + +function kill_taosd() { + pid=$(ps -ef | grep "taosd" | grep -v "grep" | awk '{print $2}') + ${csudo} kill -9 ${pid} || : +} + function clean_service_on_systemd() { taosd_service_config="${service_config_dir}/${taos_service_name}.service" @@ -48,23 +58,29 @@ function clean_service_on_systemd() { function clean_service_on_sysvinit() { restart_config_str="taos:2345:respawn:${service_config_dir}/taosd start" - if pidof taosd &> /dev/null; then - echo "TDengine taosd is running, stopping it..." ${csudo} service taosd stop || : fi - ${csudo} sed -i "\|${restart_config_str}|d" /etc/inittab || : ${csudo} rm -f ${service_config_dir}/taosd || : - ${csudo} update-rc.d -f taosd remove || : + + if ((${initd_mod}==1)); then + ${csudo} grep -q -F "taos" /etc/inittab && ${csudo} insserv -r taosd || : + elif ((${initd_mod}==2)); then + ${csudo} grep -q -F "taos" /etc/inittab && ${csudo} update-rc.d -f taosd remove || : + fi +# ${csudo} update-rc.d -f taosd remove || : ${csudo} init q || : } function clean_service() { - if is_using_systemd; then + if ((${service_mod}==0)); then clean_service_on_systemd - else + elif ((${service_mod}==1)); then clean_service_on_sysvinit + else + # must manual start taosd + kill_taosd fi } @@ -83,4 +99,8 @@ ${csudo} rm -f ${lib_link_dir}/libtaos.* || : ${csudo} rm -f ${log_link_dir} || : ${csudo} rm -f ${data_link_dir} || : +if ((${service_mod}==2)); then + kill_taosd +fi + echo -e "${GREEN}TDEngine is removed successfully!${NC}" -- GitLab