| 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 : |
#!/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 $?