[Debian]start-stop-deamon + samba

Pagina: 1
Acties:

  • Hagar
  • Registratie: Februari 2001
  • Laatst online: 14-10-2025

Hagar

Diabootic

Topicstarter
Ik draai debian testing + samba.
Ik ben bezig om samba in te stellen als PDC en zit dus regelmatig in de config te rommelen. Hierna moet ik samba dus herstarten maar daar gaat het mis. Op een of andere manier werkt het script hiervoor niet goed en worden de pid files niet gebruikt waardoor de nog draaiende smbd en nmbd niet worden gekilled. Als ik zelf smbd en nmbd kill en daarna samba opstart worden de nieuwe pid's ook niet in de pidfiles weggeschreven.
Dit is het /etc/init.d/samba script:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
#!/bin/sh
#
# Start/stops the Samba daemons (nmbd and smbd).
#
# $Id: samba.init,v 1.1.4.4 2002/03/05 19:58:07 vorlon Exp $
#

# Defaults
RUN_MODE="daemons"

# Reads config file (will override defaults above)
[ -r /etc/default/samba ] && . /etc/default/samba

NMBDPID=/var/run/samba/nmbd.pid
SMBDPID=/var/run/samba/smbd.pid

# clear conflicting settings from the environment
unset TMPDIR

# If Samba is running from inetd then there is nothing to do
if [ "$RUN_MODE" = "inetd" ]; then
        exit 0
fi

# See if the daemons are there
test -x /usr/sbin/nmbd -a -x /usr/sbin/smbd || exit 0

case "$1" in
        start)
                echo -n "Starting Samba daemons:"

                echo -n " nmbd"
                start-stop-daemon --start --quiet --pidfile $NMBDPID --exec /usr/sbin/nmbd -- -D

                echo -n " smbd"
                start-stop-daemon --start --quiet --pidfile $SMBDPID --exec /usr/sbin/smbd -- -D

                echo "."
                ;;
        stop)
                echo -n "Stopping Samba daemons:"

                echo -n " nmbd"
                start-stop-daemon --stop --quiet --pidfile $NMBDPID

                echo -n " smbd"
                start-stop-daemon --stop --quiet --pidfile $SMBDPID

                echo "."
                ;;
        reload)
                echo -n "Reloading /etc/samba/smb.conf (smbd only)"
                start-stop-daemon --stop --signal HUP --pidfile $SMBDPID

                echo "."
                ;;
        restart|force-reload)
                echo -n "Restarting Samba daemons:"

                echo -n " nmbd"
                start-stop-daemon --stop --quiet --pidfile $NMBDPID
                sleep 2
                start-stop-daemon --start --quiet --pidfile $NMBDPID --exec /usr/sbin/nmbd -- -D

                echo -n " smbd"
                start-stop-daemon --stop --quiet --pidfile $SMBDPID
                sleep 2
                start-stop-daemon --start --quiet --pidfile $SMBDPID --exec /usr/sbin/smbd -- -D

                echo "."
                ;;
        *)
                echo "Usage: /etc/init.d/samba {start|stop|reload|restart|force-reload}"
                exit 1
                ;;
esac

exit 0

Iemand enig idee?

Nu ook zonder stropdas


  • Echnon
  • Registratie: Mei 2000
  • Laatst online: 01:36
een paar voor de hand liggende ideeën, maar die had je zelf waarschijnlijk ook al gehad:
* Heb je permissie om naar /var/run/samba te schrijven?
* draai je samba via inetd?
* Gebruik je het start-stop script ook om te killen?
* weet je zeker dat je geen fout in je config file hebt staan en dat samba opstart?
* geeft het script de blaat ("starting samba daemons", "Stopping samba daemons") die het hoort te geven?

Dit standaard script is wel goed, op mijn debian doos werkt het in ieder geval ;)
Maar misschien heb je een heel specifieke configuratie

  • Hagar
  • Registratie: Februari 2001
  • Laatst online: 14-10-2025

Hagar

Diabootic

Topicstarter
Het script wordt alleen door root gedraaid dus de permissies voor /var/run/samba zouden goed moeten zijn. Die staan overigens net als alle andere aanwezige pidfiles in /var/run ook op user/groep root
Samba start als deamon.

De config is goed, samba start wel goed op!!!
Alleen de pidfiles worden niet gebruikt waardoor een nog draaiende samba niet wordt afgesloten in het geval van het stopzetten/herstarten van samba. Alle blaat messages worden netjes op het scherm gedrukt.

Het gaat dus puur om het gebruik van de pidfiles door de start-stop-deamon.
Waarom worden nieuwe pids niet in deze files weggeschreven?

Wat voor permissies heb jij op de pidfiles/directory van samba?
Edit: Ook met pidfiles geCHMOD op 666 geen verschil (normaal 644)
Blijkbaar wordt er dus niet eens naar de pidfiles gekeken. Zit er dan toch een fout in het opstartscript? Het is gewoon de originele van de debian distro :?

[ Voor 15% gewijzigd door Hagar op 02-12-2002 09:18 ]

Nu ook zonder stropdas


  • Echnon
  • Registratie: Mei 2000
  • Laatst online: 01:36
Het zou gewoon het originele script van je main samba .deb moeten zijn. Bij mij ziet ie ongeveer hetzelfde uit, behalve dat debian unstable al bij versie 1.6 van dit script is.
Daar staat wel een extra routine in om stale pid files weg te halen. Verder is er ook de functionaliteit om zelf nieuwe frisse PID files te genereren bij startup.
Dus in plaats van:

start-stop-daemon --start --quiet --pidfile $NMBDPID --exec /usr/sbin/nmbd -- -D

dit

start-stop-daemon --start --quiet --exec /usr/sbin/nmbd -- -D

Waarbij bij --stop wel gewoon PIDs worden uitgelezen. Deze versie van samba maakt standaard nieuwe PID files aan, maak ik op uit een klein handmatig testje :) (unstable zit op samba 2.999+3.0.alpha)

Misschien is het een bekend probleem bij bepaalde gevallen, dat de PID op de een of andere manier lockt en dat daarom de werkwijze veranderd is.
Heb je een oude versie uit testing, is dit de nieuwste samba.deb uit testing? En is je start-stop-daemon ook up-to-date? (hoort bij de dpkg .deb).

Je permissies zijn ook gewoon standaard, niet dat het uitmaakt, want root kijkt toch niet naar permissies, zelfs niet van eigen files. Of je moet een hardened kernel hebben ;)

wat melden de files in /var/log/samba? daar kun je misschien wat meer te weten komen wat er precies gebeurt bij het opstarten. Je kunt ook debuggen door de start stop lines te veranderen en kijken wat de output dan is:

echo -n " nmbd"
start-stop-daemon --start --quiet --pidfile $NMBDPID --exec /usr/sbin/nmbd -- -D

wordt

start-stop-daemon --start --quiet --pidfile $NMBDPID --exec /usr/sbin/nmbd -- -D && echo -n "nmbd"

Maar dan kijk je echt alleen of de start-stop-daemon successvol zijn dingen doet.