Rev 4 | Blame | Compare with Previous | Last modification | View Log | RSS feed
#!/bin/sh## chkconfig: - 91 35# description: Starts and stops the Samba smbd daemon \# used to provide SMB network services.## pidfile: /var/run/samba/smbd.pid# config: /etc/samba/smb.conf# Source function library.if [ -f /etc/init.d/functions ] ; then. /etc/init.d/functionselif [ -f /etc/rc.d/init.d/functions ] ; then. /etc/rc.d/init.d/functionselseexit 1fi# Avoid using root's TMPDIRunset TMPDIR# Source networking configuration.. /etc/sysconfig/networkif [ -f /etc/sysconfig/samba ]; then. /etc/sysconfig/sambafi# Check that networking is up.[ ${NETWORKING} = "no" ] && exit 1# Check that smb.conf exists.[ -f /etc/samba/smb.conf ] || exit 6RETVAL=0start() {KIND="SMB"echo -n $"Starting $KIND services: "daemon smbd $SMBDOPTIONSRETVAL=$?echo[ $RETVAL -eq 0 ] && touch /var/lock/subsys/smb || \RETVAL=1return $RETVAL}stop() {KIND="SMB"echo -n $"Shutting down $KIND services: "killproc smbdRETVAL=$?echo[ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/smbreturn $RETVAL}restart() {stopstart}reload() {echo -n $"Reloading smb.conf file: "killproc smbd -HUPRETVAL=$?echoreturn $RETVAL}rhstatus() {status -l smb smbdreturn $?}configtest() {# First run testparm and check the exit status.# If it ain't 0, there was a problem, show them the testparm output.# Most of the time, though, testparm gives 0 - obvious problems# (like a missing config file) that testparm normally tells us about# have been checked for earlier in this script./usr/bin/testparm -s &> /dev/nullRETVAL=$?if [ $RETVAL -ne 0 ]; then/usr/bin/testparm -sexit $RETVALfi# Note: testparm returns 0 even if it has unknown parameters.# Check for the word 'unknown', and print the relevant section# if it appears. Return '3' because testparm doesn't usually# use that./usr/bin/testparm -s 2>&1 | grep -i unknown &> /dev/nullif [ $? -eq 0 ]; thenRETVAL=3/usr/bin/testparm -s 2>&1 | grep -i unknownexit $RETVALfi# If testparm didn't fail and there weren't any unknowns, exit.echo Syntax OKreturn $RETVAL}# Allow status as non-root.if [ "$1" = status ]; thenrhstatusexit $?fi# Check that we are root ... so non-root users stop here[ `id -u` -eq "0" ] || exit 4case "$1" instart)start;;stop)stop;;restart)restart;;reload)reload;;status)rhstatus;;configtest)configtest;;condrestart)[ -f /var/lock/subsys/smb ] && restart || :;;*)echo $"Usage: $0 {start|stop|restart|reload|configtest|status|condrestart}"exit 2esacexit $?