PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Samba Startscript



hell
09.02.03, 17:23
Hallo,

ich habe ein kleines Startscript für den Samba-Server geschrieben:

smbstart.sh:
#!/bin/bash
echo "Samba wird gestartet"
rcsamba start

Um die Datei bei jedem Start automatisch auszuführen, habe ich

sh smbstart.sh

in /etc/init.d/boot.local eingetragen. Allerdings bekomm ich jetzt eine Fehlermeldung, da bei einem Systemstart der Runlevel N ist, der NBM-Daemon beim Start aber einen Runlevel benötigt. Deshalb zeigt er mit rcsamba status auch "dead" an.
Es wäre also von Vorteil, wenn der Aufruf des Scripts erst dann geschieht, wenn das System bereits in einem Runlevel ist (was ja boot.local nicht macht). Könnt ihr mir kurz einen Tipp geben, welche Datei die Anweisungen erst nach Eintritt in den Runlevel ausführt?


Vielen Dank im Voraus!

MfG

Michael

MatzeG2002
09.02.03, 17:25
Hi,

kopier dein Script nach "/etc/init.d" und mach einen Symlink nach "/etc/rc5.d/S90Samba"

Gruß Matze

LKH
09.02.03, 17:29
Hi,

wenn du SuSE hast gibt es doch schon die Startskripte. Du musst nur mit dem Runleveleditor (YaST) festlegen, in welchem Runlevel welcher Dienst gestartet werden soll.

hell
09.02.03, 18:00
Also das mit den Links kann ich leider noch nicht. Deshalb hab ich mal die Methode mit dem Runlevel-Editor ausprobiert. Das Script ist in /etc/init.d. Wenn ich in dem RL-Editor bei dem Script die Runlevels 3 und 5 aktiviere, werden diese Einstellungen nicht übernommen. Als ich zum Test mal auf "Dienst jetzt starten" geklickt habe, kam folgende Meldung (obwohl als root angemeldet):

/etc/init.d/smbstart.sh start gab 126 (Fehler nicht spezifiziert)

sh: line3: /etc/init.d/smbstart: Keine Berechtigung

Könnte es sein, dass ich die Datei rcsamba nach init.d kopieren müsste? Wie schaffe ich es, nicht nur den Dienst zu starten sondern das gesamte Script auszuführen?


MfG

Michael

MatzeG2002
09.02.03, 18:02
hmm,
Fehler steht eigentlich da !!

sh: line3: /etc/init.d/smbstart: Keine Berechtigung
Vieleicht mal dieser Datei ausführungsrechte für root geben.

Gruß Matze

hell
09.02.03, 18:40
Hmm also ich hab festgestellt, dass der Runleveleditor dem Script Parameter übergeben will, was natürlich nicht funzt. Ich hab jetzt direkt die rcsamba in /etc/init.d kopiert. Soweit ist alles in Ordnung. Er versucht auch, die Services zu starten, allerdings ohne Erfolg (starting samba classic ........ failed). Theoretisch müsste es doch so funktionieren (Samba startet im Runlevel 3 mit rcsamba start). Kann der Fehler evtl. daran liegen, dass Samba spezielle Netzwerkkomponenten braucht, die erst nach dem Sambastart gestartet werden? Gibt es eine Möglichkeit, die Reihenfolge zu beeinflussen?


MfG

hell
09.02.03, 18:48
Also den rcsamba beim Start zu starten, funktioniert bei mir nicht. Ich hab jetzt einfach die 2 Komponenten (NBM, SMB) einzeln starten lassen und siehe da: Es funktioniert :)

Trotzdem vielen Dank für die Hilfe!

MfG

Michael

Thomas Mitzkat
09.02.03, 22:32
die start-/stopscripte der suse ( /etc/init.d/smb+rmb ) erfüllen voll die funktionalität, die gebraucht wird. die bearbeitung mit dem runlevel-editor ist auch richtig, aber warum das system durch wahlloses rumkopieren von scripten verdreht wird, kann ich nicht nachvollziehen. um ein neues startscript auch in der richtigen reihenfolge mit dem runlevel-editor einbinden zu können, muss dieses script ein info-block am anfang haben.

#### begin init info ###
#
# info
# info

usw..

daran werden beispielsweise die scriptanhängigkeiten untereinander geregelt, gerade samba braucht netzwerk, um überhaupt richtig funktionieren zu können. wer ein spezielles script für samba braucht, das dort eingebunden werden kann, sollte einfach auch nur mal die suchfunktion benutzen, ich habe ein solches komplettzes script hier gepostet.

was mir gerade noch auffällt: ein script ruft ein anderes script, welches wieder ein anderes script aufruft, sorry, das ist schon echt daneben.