#!/bin/sh # # chkconfig: 345 91 35 # description: Starts and stops the Samba smbd and nmbd daemons \ # used to provide SMB network services. # # config: /etc/samba/smb.conf # config: /etc/samba/lmhosts # processname: nmbd # processname: smbd # 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 "Samba SMB/CIFS Server" exit 1 fi else exit 0 fi export TMPDIR=/tmp unset TMP || : 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 # Check if the service is already running? 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=$? fi if [ $RETVAL -eq 0 ]; then touch /var/lock/subsys/$lockname fi } stop() { # Stop daemons. if [ ! -f /var/lock/subsys/$lockname ]; then msg_not_running "Samba SMB/CIFS Server" return fi 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 } RETVAL=0 # See how we were called. case "$1" in start) start ;; stop) stop ;; restart) stop start ;; try-restart) condrestart 0 ;; reload|force-reload) reload ;; status) rc_status ;; *) msg_usage "$0 {start|stop|restart|try-restart|reload|force-reload|status}" exit 3 esac exit $RETVAL