fix: don't kill Netdata PIDs if successfully stopped Netdata (#12982)
Ilya Mashchenko committed
May 23, 2022 at 15:19 UTC
7c6ca406e57925f8f656342446c18855e80963ff
2 files changed
+31
-17
packaging/installer/functions.sh
+16
-9
@@ -640,39 +640,46 @@ netdata_pids() {
640
}
641
642
stop_all_netdata() {
643
+ stop_success=0
644
645
if [ "${UID}" -eq 0 ]; then
645
- uname="$(uname 2> /dev/null)"
646
+ uname="$(uname 2>/dev/null)"
647
648
# Any of these may fail, but we need to not bail if they do.
649
if issystemd; then
650
if systemctl stop netdata; then
651
+ stop_success=1
652
sleep 5
653
fi
654
elif [ "${uname}" = "Darwin" ]; then
655
if launchctl stop netdata; then
656
+ stop_success=1
657
sleep 5
658
fi
659
elif [ "${uname}" = "FreeBSD" ]; then
660
if /etc/rc.d/netdata stop; then
661
+ stop_success=1
662
sleep 5
663
fi
664
else
665
if service netdata stop; then
666
+ stop_success=1
667
sleep 5
668
fi
669
fi
670
fi
671
667
- if [ -n "$(netdata_pids)" ] && [ -n "$(command -v netdatacli)" ]; then
668
- netdatacli shutdown-agent
669
- sleep 20
670
- fi
672
+ if [ "$stop_success" = "0" ]; then
673
+ if [ -n "$(netdata_pids)" ] && [ -n "$(command -v netdatacli)" ]; then
674
+ netdatacli shutdown-agent
675
+ sleep 20
676
+ fi
677
672
- for p in $(netdata_pids); do
673
- # shellcheck disable=SC2086
674
- stop_netdata_on_pid ${p}
675
- done
678
+ for p in $(netdata_pids); do
679
+ # shellcheck disable=SC2086
680
+ stop_netdata_on_pid ${p}
681
+ done
682
+ fi
683
}
684
685
# -----------------------------------------------------------------------------
packaging/installer/netdata-uninstaller.sh
+15
-8
@@ -650,6 +650,7 @@ netdata_pids() {
650
651
stop_all_netdata() {
652
p=''
653
+ stop_success=0
654
655
if [ "$(id -u)" -eq 0 ]; then
656
uname="$(uname 2> /dev/null)"
@@ -657,32 +658,38 @@ stop_all_netdata() {
658
# Any of these may fail, but we need to not bail if they do.
659
if issystemd; then
660
if systemctl stop netdata; then
661
+ stop_success=1
662
sleep 5
663
fi
664
elif [ "${uname}" = "Darwin" ]; then
665
if launchctl stop netdata; then
666
+ stop_success=1
667
sleep 5
668
fi
669
elif [ "${uname}" = "FreeBSD" ]; then
670
if /etc/rc.d/netdata stop; then
671
+ stop_success=1
672
sleep 5
673
fi
674
else
675
if service netdata stop; then
676
+ stop_success=1
677
sleep 5
678
fi
679
fi
680
fi
681
677
- if [ -n "$(netdata_pids)" ] && [ -n "$(command -v netdatacli)" ]; then
678
- netdatacli shutdown-agent
679
- sleep 20
680
- fi
682
+ if [ "$stop_success" = "0" ]; then
683
+ if [ -n "$(netdata_pids)" ] && [ -n "$(command -v netdatacli)" ]; then
684
+ netdatacli shutdown-agent
685
+ sleep 20
686
+ fi
687
682
- for p in $(netdata_pids); do
683
- # shellcheck disable=SC2086
684
- stop_netdata_on_pid ${p}
685
- done
688
+ for p in $(netdata_pids); do
689
+ # shellcheck disable=SC2086
690
+ stop_netdata_on_pid ${p}
691
+ done
692
+ fi
693
}
694
695
trap quit_msg EXIT