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: //var/packages/SMBService/conf/systemd/smbd.sh
#! /bin/bash
#
# smbd functions for systemd

source "/var/packages/SMBService/conf/systemd/samba-util.sh"
source "/var/packages/SMBService/scripts/util.sh"

set_smbd_affinity() {
	/bin/uname -a | /bin/grep -i "qoriq\|evansport\|comcerto2k\|armada375\|monaco" > /dev/null 2>&1
	local support_smb_affinity="$?"

	if [ 0 -eq ${support_smb_affinity} ]; then
		for each_pid in $(/bin/pidof smbd); do
			/usr/bin/taskset -p 2 $each_pid > /dev/null 2>&1
		done
	fi
}

# TODO: /var/spool/samba ??
smb_prestart_smbd() {
	local smbspool=/var/spool/samba

	# FIXME remove smbspool
	[ -d "$smbspool" ] && /bin/rm -f "$smbspool/*"

	samba_file_dir_check
	smbinfo_conf_check
}

smb_start_smbd() {
	if is_ad_mode; then
		exec ${SAMBA_SBIN}/smbd -F --no-process-group -s "/etc/samba/synoadserver.conf" --option="server role check:inhibit=yes"
	else
		exec ${SAMBA_SBIN}/smbd -F --no-process-group
	fi
}

smb_poststart_smbd() {
	{
	set_smbd_affinity
} &
}

smb_poststop_smbd() {
    smb_remove_smbd_temp_tdbs
    smb_remove_smbd_winbindd_share_tdbs
}

if [ $# -eq 0 ]; then
	action=status
else
	action=$1
	shift
fi

case $action in
	status)
		smb_status pkg-synosamba-smbd
		;;
	prestart)
		smb_prestart_smbd
		;;
	start)
		smb_start_smbd
		;;
	poststart)
		smb_poststart_smbd
		;;
	poststop)
		smb_poststop_smbd
		;;
	*)
		echo "wrong arguments"
		exit
		;;
esac

# vim:set noexpandtab: