it-swarm.com.de

Was hat dazu geführt, dass "smbd" beim Booten nicht mehr ausgeführt wird?

Vor kurzem hatte ich ein seltsames Problem auf meinem Samba-Server (Ubuntu 10.04 LTS am64), als "plötzlich" alle Freigaben für die Clients unzugänglich waren. Das Aufspüren des Fehlers ergab, dass smbd beim Hochfahren nicht gestartet wurde. Aus dem Syslog:

[...]
Dec  4 12:28:45 takkat-home dhclient: 
Dec  4 12:28:45 takkat-home NetworkManager: <info>  DHCP: device eth0 state changed (null) -> preinit
Dec  4 12:28:45 takkat-home init: smbd main process (1027) terminated with status 255
Dec  4 12:28:45 takkat-home init: smbd main process ended, respawning
Dec  4 12:28:45 takkat-home dhclient: Listening on LPF/eth0/00:24:1d:25:40:e4
Dec  4 12:28:45 takkat-home dhclient: Sending on   LPF/eth0/00:24:1d:25:40:e4
Dec  4 12:28:45 takkat-home dhclient: Sending on   Socket/fallback
Dec  4 12:28:45 takkat-home avahi-daemon[917]: No service file found in /etc/avahi/services.
Dec  4 12:28:45 takkat-home init: smbd main process (1045) terminated with status 255
Dec  4 12:28:45 takkat-home init: smbd main process ended, respawning
Dec  4 12:28:45 takkat-home init: smbd main process (1050) terminated with status 255
Dec  4 12:28:45 takkat-home init: smbd main process ended, respawning
[...]

und smbd.log:

[...]
[2010/12/04 12:28:45,  0] smbd/server.c:1069(main)
  smbd version 3.4.7 started.
  Copyright Andrew Tridgell and the Samba Team 1992-2009
[2010/12/04 12:28:45,  0] printing/print_cups.c:103(cups_connect)
  Unable to connect to CUPS server localhost:631 - Connection refused
[2010/12/04 12:28:45,  0] printing/print_cups.c:103(cups_connect)
  Unable to connect to CUPS server localhost:631 - Connection refused
[2010/12/04 12:28:45,  0] smbd/server.c:1115(main)
  standard input is not a socket, assuming -D option
[2010/12/04 12:28:45,  0] passdb/pdb_interface.c:253(guest_user_info)
  guest_user_info: Unable to locate guest account [guest]!
[2010/12/04 12:28:45,  0] smbd/server.c:1201(main)
  ERROR: failed to setup guest info.
[2010/12/04 12:28:45,  0] smbd/server.c:1069(main)
  smbd version 3.4.7 started.
  Copyright Andrew Tridgell and the Samba Team 1992-2009
[...]

es war klar, dass smbd abgestürzt ist.

Davor habe ich nichts an der Samba-Konfiguration geändert, nur Sicherheitsupdates installiert und keine neuen Benutzer angelegt oder gelöscht. Heute habe ich alles wie gewohnt reparieren und laufen lassen, indem ich einfach lief

Sudo smbd restart

Die Abstürze beim Booten sind verschwunden und Freigaben stehen den Clients wieder zur Verfügung.

Trotzdem habe ich keine Ahnung, welcher Prozess für dieses Verhalten verantwortlich war, und ich mache mir Sorgen, wie ich dies in Zukunft vermeiden kann. Über Ideen, welcher Prozess für das Abstürzen von smbd verantwortlich gemacht werden könnte, würde ich mich sehr freuen. Außerdem würde mich interessieren, was ein Neustart von smbd möglicherweise repariert haben könnte und ob dies überhaupt eine gute Idee war.

3
Takkat

Wenn es sich in der Tat um ein Timing-Problem handelt, bedeutet dies wahrscheinlich etwas (ich vermute einen Netzwerkdienst), das erforderlich ist, bevor der Start von smbd nicht rechtzeitig erfolgt. Die Tatsache, dass Sie es nach dem Start problemlos starten können, bedeutet, dass Sie es wahrscheinlich nur auf eine sehr niedrige Startpriorität einstellen können (d. H. Ganz am Ende, da es keine Abhängigkeit von einem anderen Dienst zu haben scheint).

Verwenden Sie dazu das Skript update-rc.d.

Für Hintergrundinformationen checken Sie /etc/rc2.d (oder einen der Dienste /etc/rc2.d bis /etc/rc5.d) aus, die so eingestellt sind, dass sie automatisch gestartet werden, wenn das System die Ausführungsebene 2 - 5 erreicht (für diese Übung nehmen wir an, dass sie gleich sind). Sie werden wahrscheinlich feststellen, dass es ein S20smbd gibt, was bedeutet, dass smbd automatisch gestartet wird (Links zum Startskript / etc/init.d/smbd) mit einer Priorität von 20, wo Dinge mit niedriger Priorität werden zuerst gestartet, bis alles im Runlevel-Verzeichnis abgearbeitet wurde.

Normalerweise verwendet ein Start auf Benutzerebene eine niedrige Priorität von 99 (wird zuletzt gestartet). In den Dokumenten von update-rc.d wird daher 98 verwendet:

  • pdate-rc.d smbd default 98 02

Dies bedeutet einfach, dass der automatische Start von smbd für die Standardlaufebenen (2-5) auf Priorität 98 aktualisiert wird. Dies wird also so ziemlich das Letzte sein, was gestartet wird (abhängig davon, wie Ihr System eingerichtet ist).

1
kwiksand

Seien Sie vorsichtig, wenn Sie mehrere Netzwerkkarten haben, versucht Samba möglicherweise nicht einmal zu starten (keine Spur von smbd in sys.log), da es darauf wartet, dass die falsche Netzwerkschnittstelle aktiv ist.

  1. überprüfen Sie ifconfig, um herauszufinden, welche Schnittstelle Sie verwenden möchten.
  2. Überprüfen Sie dann in /etc/samba/smb.conf, ob Samba die richtige Schnittstelle verwendet
  3. Überprüfen Sie dann in /etc/config/smbd.conf, ob die richtige Schnittstelle aktiv ist, bevor Sie Samba starten. Zum Beispiel startet die folgende Zeile smbd nur, wenn die eth0-Schnittstelle aktiv ist:

start on (local-filesystems and net-device-up IFACE=eth0 and started udev-finish)

3
William Ledoux

Ich habe mich im Internet kurz umgesehen und es scheint entweder ein Berechtigungsproblem oder ein Timing zu sein. Zum Beispiel starte ich docky und normalerweise wird nach dem Einloggen eine Benachrichtigung angezeigt, dass compiz nicht aktiviert ist und einige der Funktionen nicht aktiviert werden, aber wenn es tatsächlich so aussieht, als ob compiz Zeit zum Starten hatte und docky in Ordnung ist. Docky kann auf eine einfachere Form zurückgreifen, wenn compiz noch nicht gestartet wurde. AWN (Avant Window Navigator) tut dies jedoch nicht und wird nur dann nicht geladen, wenn compiz nicht vorhanden ist, auch wenn es zu einem späteren "Zeitpunkt" gelingt, den faulen Hintern in Gang zu bringen. Obwohl sich alle meine Streifzüge um visuelle GUI-Elemente drehen, sollte die Theorie auch für Service-Programme gelten. Eine mögliche Lösung ist ein Skript, das überprüft, ob der smbd-Dienst erfolgreich ausgeführt wird, und versucht, ihn erneut zu starten, falls er nicht ausgeführt wird.

Hoffe das hilft oder gibt dir zumindest eine Idee.

1
Allan

Ich hatte das gleiche Problem. Ich habe die Lösung gefunden, als ich ein Howto zur Installation von sendmail auf meinem Unternehmensserver gelesen habe.

Installieren Sie die Pakete sysv-rc-conf und sysvinit-utils, indem Sie Folgendes in ein Terminal eingeben.

Sudo apt-get install sysv-rc-conf sysvinit-utils

Dann geben Sie dies ein, um Ihr System (Ubuntu 10.04) so ​​zu konfigurieren, dass es beim Booten geladen wird nmbd:

Sudo sysv-rc-conf nmbd on
1
Alek Silver

Es gibt ein weiteres Problem unter Ubuntu 11.04 (natty, AMD64). Aus dem Bootlog:

Verwenden Sie das Dienstprogramm service (8), z. Service S20smbd starten

Da das Skript, das Sie aufrufen möchten, in einen Upstart-Job konvertiert wurde, können Sie auch das Dienstprogramm start (8) verwenden, z. start S20smbd start: Unbekannter Job: S20smbd

Es scheint also, dass smbd versucht, als "S20smbd" gestartet zu werden, daher wird es von "service" nicht erkannt. Wiederum behebt ein Neustart von smbd, sobald das System hochgefahren ist, das Problem.

Ich kann nicht herausfinden, wo das Problem in den Upstart-Skripten liegt. Jede Hilfe wäre dankbar, danke.

1
tommaso

Ich denke, dass dieses Problem auf einen Wettlauf zwischen dhclient zurückzuführen ist, der die Netzwerkschnittstelle asynchron aufruft, und anderen Diensten, die die Netzwerkschnittstelle benötigen.

Ich hatte Samba sporadisch lange nicht mehr auf meinem Debian-System gestartet, und jetzt passierte im Wesentlichen das Gleiche mit mysqld (das vom MythTV-Back-End benötigt wird), was mich schließlich dazu motivierte, tiefer in mein Debian-System einzusteigen.

Wenn der DHCPACK rechtzeitig eintrifft und dhclient die Schnittstelle vor dem Start von Samba/mysql aufruft, ist alles in Ordnung, andernfalls können die Dienste nicht gestartet werden:

mysqld: 120520 11:38:02 [ERROR] Can't start server: Bind on TCP/IP port: Cannot assign requested address

May 20 12:50:38 piano smbd[1763]:   WARNING: no network interfaces found 

Ich habe es durch den hässlichen Hack behoben, eine Verzögerung von 15 Sekunden nach dem Start von Network-Manager in seinem Init-Skript hinzuzufügen und die beiden Init-Skripte nach Network-Manager in der Startreihenfolge zu verschieben.

Ein besserer Weg wäre, eine geeignete Abhängigkeit für die Netzwerkschnittstelle hinzuzufügen, aber dies scheint mit sysvinit nicht möglich zu sein.

Ich hielt andere Lösungen für zu riskant (z. B. die Verwendung von upstart).

1
starblue