X-Git-Url: http://git.pld-linux.org/?a=blobdiff_plain;f=smb.init;h=9b7f9233f35ea0672bed4f266fe470bfa4c69237;hb=607be618cdfba9cd85bec3a3445bc851d643d7d9;hp=c55adf9bf01aae650fcf349eb64581348fc5cc5a;hpb=146d4be07dce4a41ec0260a65d5c535b0f929eff;p=packages%2Fsamba.git diff --git a/smb.init b/smb.init old mode 100644 new mode 100755 index c55adf9..9b7f923 --- a/smb.init +++ b/smb.init @@ -9,87 +9,130 @@ # processname: nmbd # processname: smbd -export PATH=/bin:/sbin:/usr/bin:/usr/sbin - # Source function library. . /etc/rc.d/init.d/functions # Source networking configuration. . /etc/sysconfig/network +# Set default config +CFGFILE="/etc/samba/smb.conf" +smbd_pidfile="/var/run/samba/smbd.pid" +nmbd_pidfile="/var/run/samba/nmbd.pid" +lockname=smb + # Demon specified configuration. . /etc/sysconfig/samba # Check that networking is up. if is_yes "${NETWORKING}"; then if [ ! -f /var/lock/subsys/network -a "$1" != stop -a "$1" != status ]; then - msg_network_down smb + msg_network_down "Samba SMB/CIFS Server" exit 1 fi else exit 0 fi -TMPDIR="/tmp"; export TMPDIR +export TMPDIR=/tmp unset TMP || : -# Check that smb.conf exists. -[ -f /etc/samba/smb.conf ] || exit 0 +start() { + SERVER_ROLE=$(samba-tool testparm --parameter-name="server role" 2>/dev/null | tail -n1) + if [ "$SERVER_ROLE" = "active directory domain controller" ]; then + exit 0 + fi -RETVAL=0 -# See how we were called. -case "$1" in - start) # Check if the service is already running? - if [ ! -f /var/lock/subsys/smb ]; then - msg_starting smbd - daemon smbd -D - RETVAL=$? - msg_starting nmbd - daemon nmbd -D + if [ -f /var/lock/subsys/$lockname ]; then + msg_already_running "Samba SMB/CIFS Server" + return + fi + + msg_starting "Samba SMB/CIFS Server" + daemon /usr/sbin/smbd -D -s $CFGFILE + RETVAL=$? + NMBD_DISABLED=`testparm -s --parameter-name='disable netbios' 2>/dev/null` + if [ "$NMBD_DISABLED" != Yes ]; then + msg_starting "Samba NetBIOS Name Server" + daemon /usr/sbin/nmbd -D $CFGFILE [ $RETVAL -eq 0 ] && RETVAL=$? - [ $RETVAL -eq 0 ] && touch /var/lock/subsys/smb - else - msg_already_running smb fi - ;; - stop) + if [ $RETVAL -eq 0 ]; then + touch /var/lock/subsys/$lockname + fi +} + +stop() { # Stop daemons. - if [ -f /var/lock/subsys/smb ]; then - msg_stopping smbd - killproc smbd - msg_stopping nmbd - killproc nmbd - rm -f /var/lock/subsys/smb >/dev/null 2>&1 - else - msg_not_running smb + if [ ! -f /var/lock/subsys/$lockname ]; then + msg_not_running "Samba SMB/CIFS Server" + return fi - ;; - status) + + msg_stopping "Samba SMB/CIFS Server" + killproc --pidfile $smbd_pidfile smbd + + msg_stopping "Samba NetBIOS Name Server" + killproc --pidfile $nmbd_pidfile nmbd + rm -f /var/lock/subsys/$lockname >/dev/null 2>&1 +} + +reload() { + if [ ! -f /var/lock/subsys/$lockname ]; then + msg_not_running "Samba SMB/CIFS Server" + RETVAL=7 + return + fi + + msg_reloading "Samba SMB/CIFS Server" + killproc --pidfile $smbd_pidfile smbd -HUP + RETVAL=$? +} + +condrestart() { + if [ ! -f /var/lock/subsys/$lockname ]; then + msg_not_running "Samba SMB/CIFS Server" + RETVAL=$1 + return + fi + + stop + start +} + +rc_status() { status smbd RETVAL=$? status nmbd RET=$? [ $RETVAL -eq 0 ] && RETVAL=$RET - smbstatus +} + +RETVAL=0 +# See how we were called. +case "$1" in + start) + start + ;; + stop) + stop ;; restart) - $0 stop - $0 start - exit $? + stop + start + ;; + try-restart) + condrestart 0 ;; reload|force-reload) - if [ -f /var/lock/subsys/smb ]; then - msg_reloading smb - killproc smbd -HUP - RETVAL=$? - else - msg_not_running smb >&2 - exit 7 - fi + reload + ;; + status) + rc_status ;; *) - msg_usage "$0 {start|stop|restart|reload|force-reload|status}" + msg_usage "$0 {start|stop|restart|try-restart|reload|force-reload|status}" exit 3 esac