#!/bin/bash # # ### BEGIN INIT INFO # Provides: $samba # Required-Start: $network # Required-Stop: $network # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Description: samba # Starts and stops the Samba smbd and nmbd daemons # used to provide SMB network services. ### END INIT INFO # # Written by Miquel van Smoorenburg . # Modified for Debian GNU/Linux by Ian Murdock . # Modified for OpenLinux by Raymund Will # Adapted for samba by Klaus Singvogel NAME_S=smbd DAEMON_S=/usr/sbin/$NAME_S NAME_N=nmbd DAEMON_N=/usr/sbin/$NAME_N # Source function library (and set vital variables). . @SVIdir@/functions status() { [ -e $1 ] || return 3; # lock / pid file doesn't exist, seems to be stopped i=`cat "$1"` state=`egrep '^State' /proc/$i/status 2>/dev/null| sed 's#.* \(.\).*#\1#'` if [ x$state = x -o x$state = xZ ]; then return 2 # no such process (or zombie) --> dead fi return 0 # seems to be up and running } case "$1" in start) [ ! -e $SVIlock ] || exit 0 [ -x $DAEMON_S -a -x $DAEMON_N ] || exit 5 SVIemptyConfig /etc/samba.d/smb.conf && exit 6 echo -n "Starting $SVIsubsys services: " ssd -S -n $NAME_S -x $DAEMON_S -- $OPTIONS_SMB ssd -S -n $NAME_N -x $DAEMON_N -- $OPTIONS_NMB ret=$? echo "." touch $SVIlock ;; stop) [ -e $SVIlock ] || exit 0 echo -n "Stopping $SVIsubsys services: " ssd -K -p /var/lock/samba.d/$NAME_N.pid -n $NAME_N #-x $DAEMON_N ssd -K -p /var/lock/samba.d/$NAME_S.pid -n $NAME_S #-x $DAEMON_S ret=$? echo "." rm -f $SVIlock ;; force-reload) [ -e $SVIlock ] || exit 0 $0 restart ret=$? ;; reload) echo -n "Reloading $SVIsubsys service configuration: " # nmbd has no config file to reload ssd -K --signal 1 -p /var/lock/samba.d/$NAME_S.pid -n $NAME_S #-x $DAEMON_S ret=$? echo "." ;; restart) $0 stop $0 start ret=$? ;; status) echo -n "Checking status of $SVIsubsys service: " status /var/lock/samba.d/$NAME_N.pid ret=$? if [ $ret -eq 0 ]; then echo -n "$NAME_N " status /var/lock/samba.d/$NAME_S.pid ret=$? [ $ret -eq 0 ] && echo -n "$NAME_S" fi echo "." ;; *) echo "Usage: $SVIscript {start|stop|restart|force-reload|reload|status}" ret=2 ;; esac exit $ret