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: