HEX
Server: Apache/2.4.63 (Unix)
System: Linux TOMS-220NAS 4.4.302+ #86009 SMP Wed Nov 26 18:19:17 CST 2025 x86_64
User: flavio87 (1026)
PHP: 8.3.27
Disabled: NONE
Upload Files
File: //proc/25637/root/etc/rc.check_data_volume_holder
#!/bin/sh
# Copyright (c) 2000-2015 Synology Inc. All rights reserved.
#
# After all services down and before umount,
# check which process does not release device(volume, lun)

. /etc.defaults/rc.subr

SZF_DEVICE_BUSY_LIST="/var/log/DeviceBusyList"

PROC_OCCUPY_VOL=`find /proc/*/fd -type l -print0 \
	| xargs -0 ls -l 2>&1 \
	| grep -v 'No such file or directory' \
	| grep '/volume[0-9]*/'
`

VOL_DEV_LIST=`cat /proc/mounts \
	| grep " /volume[0-9]* " | cut -d' ' -f1 \
	| xargs -r ls -lL | awk '{print $5 $6}' | tr ',' ' ' | xargs -r printf "-e '%02x:%02x' "
`

if [ -n "$VOL_DEV_LIST" ]; then
	SO_OCCUPY_VOL=`cat /proc/*/maps | sh -c "grep $VOL_DEV_LIST"`
fi

ISCSI_BLK_LUN=`cat /sys/kernel/config/target/core/iblock_*/*/udev_path 2>/dev/null`

if [ -n "$PROC_OCCUPY_VOL" ] || [ -n "$SO_OCCUPY_VOL" ] || [ -n "$ISCSI_BLK_LUN" ]; then
	/bin/rm -f $SZF_DEVICE_BUSY_LIST
	/bin/date >> $SZF_DEVICE_BUSY_LIST
	echo "$PROC_OCCUPY_VOL" >> $SZF_DEVICE_BUSY_LIST
	echo "$SO_OCCUPY_VOL" >> $SZF_DEVICE_BUSY_LIST
	echo "$ISCSI_BLK_LUN" >> $SZF_DEVICE_BUSY_LIST
	echo >> $SZF_DEVICE_BUSY_LIST
	ps axjfw >> $SZF_DEVICE_BUSY_LIST
	dump_D_process_call_stack >> $SZF_DEVICE_BUSY_LIST
	echo -e "\nsystemctl list-jobs:" >> $SZF_DEVICE_BUSY_LIST
	/bin/systemctl list-jobs >> $SZF_DEVICE_BUSY_LIST
	/usr/bin/logger -p err "Check device busy: error, refer: ${SZF_DEVICE_BUSY_LIST}"
else
	/usr/bin/logger -p err "Check device busy: passed"
fi

exit 0