correct service
[debian6500.git] / master / etc / init.d / samba
1 #!/bin/sh
2
3 ### BEGIN INIT INFO
4 # Provides: samba
5 # Required-Start: $network $local_fs $remote_fs
6 # Required-Stop: $network $local_fs $remote_fs
7 # Default-Start: 2 3 4 5
8 # Default-Stop: 0 1 6
9 # Should-Start: slapd cups
10 # Should-Stop: slapd cups
11 # Short-Description: start Samba daemons (nmbd and smbd)
12 ### END INIT INFO
13
14
15 # Defaults
16 RUN_MODE="daemons"
17
18 # Reads config file (will override defaults above)
19 [ -r /etc/default/samba ] && . /etc/default/samba
20
21 PIDDIR=/var/run/samba
22 NMBDPID=$PIDDIR/nmbd.pid
23 SMBDPID=$PIDDIR/smbd.pid
24
25 # clear conflicting settings from the environment
26 unset TMPDIR
27
28 # See if the daemons are there
29 test -x /usr/sbin/nmbd -a -x /usr/sbin/smbd || exit 0
30
31 . /lib/lsb/init-functions
32
33 case "$1" in
34 start)
35 log_daemon_msg "Starting Samba daemons"
36 # Make sure we have our PIDDIR, even if it's on a tmpfs
37 install -o root -g root -m 755 -d $PIDDIR
38
39 if [ -n `which testparm` ]
40 then
41 NMBD_DISABLED=`testparm -s --parameter-name='disable netbios' 2>/dev/null`
42 fi
43 if [ "$NMBD_DISABLED" != 'Yes' ]; then
44 log_progress_msg "nmbd"
45 if ! start-stop-daemon --start --quiet --oknodo --exec /usr/sbin/nmbd -- -D
46 then
47 log_end_msg 1
48 exit 1
49 fi
50 fi
51
52 if [ "$RUN_MODE" != "inetd" ]; then
53 log_progress_msg "smbd"
54 if ! start-stop-daemon --start --quiet --oknodo --exec /usr/sbin/smbd -- -D; then
55 log_end_msg 1
56 exit 1
57 fi
58 fi
59
60 log_end_msg 0
61 ;;
62 stop)
63 log_daemon_msg "Stopping Samba daemons"
64 log_progress_msg "nmbd"
65
66 start-stop-daemon --stop --quiet --pidfile $NMBDPID
67 # Wait a little and remove stale PID file
68 sleep 1
69 if [ -f $NMBDPID ] && ! ps h `cat $NMBDPID` > /dev/null
70 then
71 # Stale PID file (nmbd was succesfully stopped),
72 # remove it (should be removed by nmbd itself IMHO.)
73 rm -f $NMBDPID
74 fi
75
76 if [ "$RUN_MODE" != "inetd" ]; then
77 log_progress_msg "smbd"
78 start-stop-daemon --stop --quiet --pidfile $SMBDPID
79 # Wait a little and remove stale PID file
80 sleep 1
81 if [ -f $SMBDPID ] && ! ps h `cat $SMBDPID` > /dev/null
82 then
83 # Stale PID file (nmbd was succesfully stopped),
84 # remove it (should be removed by smbd itself IMHO.)
85 rm -f $SMBDPID
86 fi
87 fi
88
89 log_end_msg 0
90
91 ;;
92 reload)
93 if [ "$RUN_MODE" != "inetd" ]; then
94 log_daemon_msg "Reloading /etc/samba/smb.conf" "smbd only"
95
96 start-stop-daemon --stop --quiet --signal HUP --pidfile $SMBDPID
97
98 log_end_msg 0
99 fi
100 ;;
101 restart|force-reload)
102 $0 stop
103 sleep 1
104 $0 start
105 ;;
106 status)
107 status="0"
108 NMBD_DISABLED=`testparm -s --parameter-name='disable netbios' 2>/dev/null`
109 if [ "$NMBD_DISABLED" != "Yes" ]; then
110 status_of_proc -p $NMBDPID /usr/sbin/nmbd nmbd || status=$?
111 fi
112 if [ "$RUN_MODE" != "inetd" ]; then
113 status_of_proc -p $SMBDPID /usr/sbin/smbd smbd || status=$?
114 fi
115 if [ "$NMBD_DISABLED" = "Yes" -a "$RUN_MODE" = "inetd" ]; then
116 status="4"
117 fi
118 exit $status
119 ;;
120 *)
121 echo "Usage: /etc/init.d/samba {start|stop|reload|restart|force-reload|status}"
122 exit 1
123 ;;
124 esac
125
126 exit 0