Bug 35291

Summary: Добавить возможность ожидания отключения инициаторов при выключение службы
Product: Sisyphus Reporter: Alex Moskalenko <mav>
Component: scsitarget-utilsAssignee: Стас <stas.grumbler>
Status: NEW --- QA Contact: qa-sisyphus
Severity: enhancement    
Priority: P3 CC: piastry, piastryyy
Version: unstable   
Hardware: all   
OS: Linux   

Description Alex Moskalenko 2018-08-24 10:45:11 MSK
Хотелось бы реализовать возможность ожидания отключения инициаторов от всех целей tgtd в /etc/rc.d/init.d/tgt. Например, что-то типа переменной STOP_WAIT=300 в /etc/sysconfig/tgtd и кода вроде такого в функции stop() /etc/rc.d/init.d/tgt:

--- tgt	2018-08-24 10:39:40.857100951 +0300
+++ tgt.init.withwait	2018-08-24 10:33:25.783602194 +0300
@@ -79,6 +79,13 @@
 		return 1
 	fi
 	msg_stopping "$NAME"
+	local wt=0
+	[ -z "$STOP_WAIT" ] STOP_WAIT=30
+	while [ $($ADM --op show --mode target | grep "Initiator:" | wc -l) -gt 0 -a $wt -lt $STOP_WAIT ]; do
+		echo -n "."
+		let wt=$wt+5
+		sleep 5
+	done
 	$ADM $STOP_OPTIONS1
 	RETVAL=$?
 	[ ! $RETVAL -eq 0 ] && failure && return $RETVAL

Это позволит при питании нескольких машин от одного ИБП дождаться отключения инициаторов от целей у корректно завершить работу системы в целом. А установка переменной STOP_WAIT в 0 вернет старое поведение.