4 # description: Starts and stops the Samba smbd and nmbd daemons \
5 # used to provide SMB network services.
7 # config: /etc/samba/smb.conf
8 # config: /etc/samba/lmhosts
12 # Source function library.
13 . /etc/rc.d/init.d/functions
15 # Source networking configuration.
16 . /etc/sysconfig/network
19 CFGFILE="/etc/samba/smb.conf"
20 smbd_pidfile="/var/run/samba/smbd.pid"
21 nmbd_pidfile="/var/run/samba/nmbd.pid"
24 # Demon specified configuration.
25 . /etc/sysconfig/samba
27 # Check that networking is up.
28 if is_yes "${NETWORKING}"; then
29 if [ ! -f /var/lock/subsys/network -a "$1" != stop -a "$1" != status ]; then
30 msg_network_down "Samba SMB/CIFS Server"
41 SERVER_ROLE=$(samba-tool testparm --parameter-name="server role" 2>/dev/null | tail -n1)
42 if [ "$SERVER_ROLE" = "active directory domain controller" ]; then
46 # Check if the service is already running?
47 if [ -f /var/lock/subsys/$lockname ]; then
48 msg_already_running "Samba SMB/CIFS Server"
52 msg_starting "Samba SMB/CIFS Server"
53 daemon /usr/sbin/smbd -D -s $CFGFILE
55 NMBD_DISABLED=`testparm -s --parameter-name='disable netbios' 2>/dev/null`
56 if [ "$NMBD_DISABLED" != Yes ]; then
57 msg_starting "Samba NetBIOS Name Server"
58 daemon /usr/sbin/nmbd -D $CFGFILE
59 [ $RETVAL -eq 0 ] && RETVAL=$?
61 if [ $RETVAL -eq 0 ]; then
62 touch /var/lock/subsys/$lockname
68 if [ ! -f /var/lock/subsys/$lockname ]; then
69 msg_not_running "Samba SMB/CIFS Server"
73 msg_stopping "Samba SMB/CIFS Server"
74 killproc --pidfile $smbd_pidfile smbd
76 msg_stopping "Samba NetBIOS Name Server"
77 killproc --pidfile $nmbd_pidfile nmbd
78 rm -f /var/lock/subsys/$lockname >/dev/null 2>&1
82 if [ ! -f /var/lock/subsys/$lockname ]; then
83 msg_not_running "Samba SMB/CIFS Server"
88 msg_reloading "Samba SMB/CIFS Server"
89 killproc --pidfile $smbd_pidfile smbd -HUP
94 if [ ! -f /var/lock/subsys/$lockname ]; then
95 msg_not_running "Samba SMB/CIFS Server"
109 [ $RETVAL -eq 0 ] && RETVAL=$RET
113 # See how we were called.
135 msg_usage "$0 {start|stop|restart|try-restart|reload|force-reload|status}"