From 2340ed6b79b3410e0f885135eaca91f4c15a94a6 Mon Sep 17 00:00:00 2001
From: Marcin Krol <hawk@tld-linux.org>
Date: Sun, 12 Feb 2023 13:09:43 +0100
Subject: [PATCH] - wait for Zabbix server proces to exit when stopping service

---
 zabbix.spec        |  2 +-
 zabbix_agentd.init |  0
 zabbix_proxy.init  |  0
 zabbix_server.init | 21 +++++++++++++++++++++
 4 files changed, 22 insertions(+), 1 deletion(-)
 mode change 100755 => 100644 zabbix_agentd.init
 mode change 100755 => 100644 zabbix_proxy.init
 mode change 100755 => 100644 zabbix_server.init

diff --git a/zabbix.spec b/zabbix.spec
index 9175efb..a30dc25 100644
--- a/zabbix.spec
+++ b/zabbix.spec
@@ -17,7 +17,7 @@ Summary:	Zabbix - network monitoring software
 Summary(pl.UTF-8):	Zabbix - oprogramowanie do monitorowania sieci
 Name:		zabbix
 Version:	6.0.13
-Release:	2
+Release:	3
 License:	GPL v2+
 Group:		Networking/Utilities
 Source0:	https://cdn.zabbix.com/zabbix/sources/stable/6.0/%{name}-%{version}.tar.gz
diff --git a/zabbix_agentd.init b/zabbix_agentd.init
old mode 100755
new mode 100644
diff --git a/zabbix_proxy.init b/zabbix_proxy.init
old mode 100755
new mode 100644
diff --git a/zabbix_server.init b/zabbix_server.init
old mode 100755
new mode 100644
index e98e121..a5c5f56
--- a/zabbix_server.init
+++ b/zabbix_server.init
@@ -27,6 +27,9 @@ fi
 # Get service config - may override defaults
 [ -f /etc/sysconfig/zabbix_server ] && . /etc/sysconfig/zabbix_server
 
+# Set default shutdown timeout if it is not set in service config
+ZABBIX_SHUTDOWN_TIMEOUT=${ZABBIX_SHUTDOWN_TIMEOUT:-60}
+
 pidfile="/var/run/zabbix/zabbix_server.pid"
 
 start() {
@@ -51,6 +54,24 @@ stop() {
 	# Stop daemons.
 	msg_stopping "Zabbix Server"
 	killproc --pidfile $pidfile zabbix_server -TERM
+
+	if [ -f "$pidfile" ]; then
+		show "Waiting for Zabbix Server to stop"
+		busy
+
+		timeout=0
+		while : ; do
+			[ ! -f "$pidfile" ] || break
+			if [ $timeout -ge $ZABBIX_SHUTDOWN_TIMEOUT ]; then
+				RETVAL=1
+				break
+			fi
+			sleep 1 && echo -n "."
+			timeout=$((timeout+1))
+		done
+		ok
+	fi
+
 	rm -f /var/lock/subsys/zabbix_server
 }
 
-- 
2.49.0