Ergebnis 21 bis 24 von 24
-
27.10.2019, 12:59 #21
- Registriert seit
- 25.06.2015
- Beiträge
- 23
- Thanks (gegeben)
- 2
- Thanks (bekommen)
- 0
- Total Downloaded
- 1,32 MB
- Total Downloaded
- 1,32 MB
ThemenstarterBox 1:xTrend ET 10000Hallo, ich bin's wieder.
Da ich jetzt OpenATV 6.4 drauf habe, habe ich mich gestern wieder mit diesem "Samba Boot Problem" befasst.
Ich poste hier mal, was ich rausgefunden habe, vielleicht hilft es jemandem oder vielleicht kennt hier jemand doch die Abhilfe bei den Problemwurzeln.
Wie das anhand Beiträgen in verschiedenen Linux-Foren aussieht, kann es verschiedene Ursachen geben, warum der Samba-Dienst beim Bootvorgang nicht startet bzw. abstürzt/sich aufhängt.
Die meisten Ursachen hängen entweder mit Netzwerkadapter(n) oder mit Festplatten/Speichermedien zusammen (ist ja klar).
Es scheint z.B. Probleme geben, wenn Samba früher startet, als der Netzwerkadapter initialisiert ist, z.B. wenn er seine IP-Adresse über DHCP noch nicht bezogen hat.
Diese Problematik kann man sich im Internet raus suchen. Man kann z.B. den Eintrag "WAIT_ONLINE_IFACE" in der Samba-Konfigurationsdatei dafür nutzen bzw. eine feste IP-Adresse konfigurieren.
Ich hab leider ein anderes Problem. Die Samba-Log-Einträge in OpenATV 6.4 sind etwas anders formuliert als in OpenATV 6.1, aber das Problem ist der gleiche:
"messaging_dgm_lockfile_create: write failed: Invalid argument"
"exit_daemon: daemon failed to start: Samba cannot init the cleanupd, error code 13"
Samba kann anscheinend im Zusammenhang mit Initialisierung von "cleanupd" manchmal keine Lock-Datei (zur Synchronisierung?) anlegen - wenn die parallele Ausführung sich so trifft bzw. etwas anderes länger dauert?
Dazu habe ich im Internet nichts vernünftiges gefunden. Vielleicht poste ich irgendwann mal dieses Problem in welche Linux-Foren.
Also meine Lösung sieht momentan so aus:
Mit folgendem Befehl (z.B. übers Telnet):
crontab -e
diesen Cron-Boot-Eintrag einfügen:
@reboot sleep 10 && /usr/sbin/smbd start
Danach die crontab-Datei mit Ctrl+O speichern und den Editor mit Ctrl+X verlassen.
Evtl. kann anstatt von "start" auch "restart" verwendet werden, wenn sich bei jemandem Samba aufhängen mag (bei mir ist das nicht der Fall).
Um zu testen, ob das mit dem @reboot Eintrag funktioniert, kann testweise etwas in eine Datei geschrieben werden (das Verzeichnis "home" muss es geben, sonst wird die Datei nicht angelegt):
@reboot sleep 10 && /usr/sbin/smbd start && echo "hi samba start" > /home/reboot.txt
Diese Lösung funkttioniert bei mir besser als ein regelmäßiger Cron-Timer, weil dieser zwar den Samba-Dienst nach der Ablauf der Zeit gestartet hat, aber ich hatte sofort nach dem Booten eben doch noch keinen Netzwerkzugriff.
Hier noch vollständiger weise der Inhalt meiner Samba-Log-Datei:
[2019/10/26 18:41:33.376516, 1] ../../source3/profile/profile_dummy.c:30(set_profile_level)
INFO: Profiling support unavailable in this build.
[2019/10/26 18:41:33.480685, 1] ../../source3/lib/messages_dgm.c:948(messaging_dgm_lockfile_create)
messaging_dgm_lockfile_create: write failed: Invalid argument
[2019/10/26 18:41:33.481474, 1] ../../source3/lib/messages_dgm.c:1031(messaging_dgm_init)
messaging_dgm_init: messaging_dgm_create_lockfile failed: Invalid argument
[2019/10/26 18:41:33.483466, 0] ../../source3/lib/util.c:500(reinit_after_fork)
messaging_reinit() failed: NT_STATUS_INVALID_PARAMETER
[2019/10/26 18:41:33.486071, 1] ../../source3/smbd/server.c:643(cleanupd_init)
cleanupd_init: reinit_after_fork failed: NT_STATUS_INVALID_PARAMETER
[2019/10/26 18:41:33.486367, 1] ../../source3/smbd/server.c:625(cleanupd_init)
cleanupd_init: cleanupd returned 1
[2019/10/26 18:41:33.486623, 0] ../../lib/util/become_daemon.c:121(exit_daemon)
exit_daemon: daemon failed to start: Samba cannot init the cleanupd, error code 13
***** jetzt habe ich Samba manuell gestartet *****
[2019/10/26 18:43:53.487249, 1] ../../source3/profile/profile_dummy.c:30(set_profile_level)
INFO: Profiling support unavailable in this build.
[2019/10/26 18:43:53.785187, 0] ../../lib/util/become_daemon.c:135(daemon_ready)
daemon_ready: daemon 'smbd' finished starting up and ready to serve connectionsGeändert von stevom (27.10.2019 um 20:32 Uhr)
-
Advertising
-
11.03.2020, 16:28 #22
- Registriert seit
- 11.02.2020
- Ort
- here and there
- Beiträge
- 2.443
- Thanks (gegeben)
- 649
- Thanks (bekommen)
- 1660
- Total Downloaded
- 0
- Total Downloaded
- 0
Box 1:Mutant HD2400Box 2:VU Ultimo 4KBox 3:Octagon SF8008Box 4:Gigablue Quad 4KBox 5:VDRHi,
Hatte ja auch immer dieses Problem das der samba an der Mutant HD 2400 nach dem Booten (sogar sehr oft) nicht automatisch starten wollte, und so die samba (cifs) Freigabe der Platte von der Mutant HD 2400 an der Zweitbox ( VU Ultimo 4k) eigentlich nur sehrr selten erreichbar war.
Habe zuerst nur ein einfaches Script als Lösung gebastelt welches an der Mutant HD 2400 den samba mittels nem Cronjob bei Bedarf automatisch nach dem Booten startet, das hat nahezu immer geklappt, aber ich habe auch feststellen müssen das (war aber sehr selten) ein einfacher Start des samba auch da unter Umständen nicht reichte.
Deshalb hab ich mir dann ein anderes Script geschrieben welches (nur bei Bedarf - also wenn der samba nicht bereits automatisch gestartet wurde) den samba startet allerdings
nicht mit nur einem einzigen Versuch sondern es wird versucht den samba bis zu dreimal zu starten, denn wie gesagt ab und an kam es hier vor das der erste Versuch den samba zu starten nicht klappte.
Bei wie nun mit bis zu drei Versuchen hatte ich seit langem nie mehr ein Problem mit dem samba Start per Script.
ACHTUNG ! Die folgende Version vom Script ist für OpenATV-6.3 oder älter wegen Wegfall vom nmbd seit Neuestem, eine Version ohne nmbd also für OpenATV-6.4 is gleich darunter
Das Script nennt sich samba_emergency_restart.sh und sieht so aus;
Code:#!/bin/sh STARTDATE="$(date +%a.%d.%b.%Y-%H:%M:%S)" BINARYPATH=/usr/sbin SMBD=smbd # Samba Server-Daemon NMBD=nmbd # NetBIOS Server-Daemon WSDD=wsdd # Webservice_Discovery Host-Daemon WAIT=3 TMP=/tmp LOGFILE=$TMP/samba_deamon_start.log # Generelles Logging exec 3>&1 4>&2 trap 'exec 2>&4 1>&3' 0 1 2 3 exec 1>$LOGFILE 2>&1 sleep 12 check_samba_run() { if ! pgrep -fl "$BINARYPATH/$SMBD" ; then error=1 elif ! pgrep -fl "$BINARYPATH/$NMBD" ; then error=1 elif ! pgrep -fl "$BINARYPATH/$WSDD" ; then error=1 else error=0 fi } try_samba_start() { $BINARYPATH/$SMBD && $BINARYPATH/$NMBD && $BINARYPATH/$WSDD if [ "$?" != "0" ] ; then echo -e "\nSamba starten fehlgeschlagen,\nnaechster Versuch in $WAIT Minuten ...\n" z=$((z+1)) else check_samba_run if [ "$error" = "0" ] ; then echo -e "\nSamba erfogreich gestartet.\n" && exit 0 else z=$((z+1)) fi fi } echo -e "\n$STARTDATE\n" # Mit der folgenden Zeile (auskommentiert) kann man nur checken welche Dienste laufen. #pgrep -fl "$BINARYPATH/$SMBD|$BINARYPATH/$NMBD|$BINARYPATH/$WSDD" check_samba_run z=1 while [ "$error" = "1" ] do if [ "$z" = "1" ] ; then echo -e "Samba-Daemon laeuft nicht.\nVersuch $z - Starte Samba ...\n" try_samba_start elif [ "$z" -gt "1" ] ; then if [ "$z" -gt "3" ] ; then echo -e "\nABBRUCH ! Samba starten fehlgeschlagen !\n" && exit 1 fi sleep ${WAIT}m NEWDATE="$(date +%a.%d.%b.%Y-%H:%M:%S)" echo -e "\n$NEWDATE\n" echo -e "Samba-Daemon laeuft nicht.\nVersuch $z - Starte Samba ...\n" try_samba_start fi done echo -e "\nSamba-Daemon laeuft bereits.\n" exit
Code:#!/bin/sh STARTDATE="$(date +%a.%d.%b.%Y-%H:%M:%S)" BINARYPATH=/usr/sbin SMBD=smbd # Samba Server-Daemon WSDD=wsdd # Webservice_Discovery Host-Daemon WAIT=3 TMP=/tmp LOGFILE=$TMP/samba_deamon_start.log # Generelles Logging exec 3>&1 4>&2 trap 'exec 2>&4 1>&3' 0 1 2 3 exec 1>$LOGFILE 2>&1 sleep 12 check_samba_run() { if ! pgrep -fl "$BINARYPATH/$SMBD" ; then error=1 elif ! pgrep -fl "$BINARYPATH/$WSDD" ; then error=1 else error=0 fi } try_samba_start() { $BINARYPATH/$SMBD && $BINARYPATH/$WSDD if [ "$?" != "0" ] ; then echo -e "\nSamba starten fehlgeschlagen,\nnaechster Versuch in $WAIT Minuten ...\n" z=$((z+1)) else check_samba_run if [ "$error" = "0" ] ; then echo -e "\nSamba erfogreich gestartet.\n" && exit 0 else z=$((z+1)) fi fi } echo -e "\n$STARTDATE\n" # Mit der folgenden Zeile (auskommentiert) kann man nur checken welche Dienste laufen. #pgrep -fl "$BINARYPATH/$SMBD|$BINARYPATH/$WSDD" check_samba_run z=1 while [ "$error" = "1" ] do if [ "$z" = "1" ] ; then echo -e "Samba-Daemon laeuft nicht.\nVersuch $z - Starte Samba ...\n" try_samba_start elif [ "$z" -gt "1" ] ; then if [ "$z" -gt "3" ] ; then echo -e "\nABBRUCH ! Samba starten fehlgeschlagen !\n" && exit 1 fi sleep ${WAIT}m NEWDATE="$(date +%a.%d.%b.%Y-%H:%M:%S)" echo -e "\n$NEWDATE\n" echo -e "Samba-Daemon laeuft nicht.\nVersuch $z - Starte Samba ...\n" try_samba_start fi done echo -e "\nSamba-Daemon laeuft bereits.\n" exit
Es muss an der Box nach /usr/script kopiert werden und dann per telnet mit folgendem Befehl ausführbar gemacht werden;
Code:chmod 755 /usr/script/samba_emergency_restart.sh
Code:(crontab -l 2>/dev/null; echo "@reboot sh /usr/script/samba_emergency_restart.sh") | crontab -
Nun kann man sich noch "wers braucht" an der Zweitbox ein weiteres Script ablegen welches das Logfile mit Namen samba_deamon_start.log von Box 1
(in dem Fall also von der Mutant HD 2400) holen kann
um an der Zweitbox nachsehen zu können falls mal was nicht klappt (denn üblicherweise sitzt man ja vor der Zweitbox um auf die freigegebene Platte von Box 1 zuzugreifen)
, und da hilft das Log an Box 1 ja nicht wirklich (ausser man will sich die Mühe machen und ins Nebenzimmer zur Box 1 zu gehen und zu gucken was los ist).
So ein weiteres Script also (was ja nur der Kontrolle dient) benötigt aber dann ssh mit authorized_keys also das hier in etwa;
https://www.opena.tv/skripte/17424-d...tml#post157028
Aussehen kann so ein quasi Kontrollscript dann so in etwa;
Code:#!/bin/sh BOX="Mutant HD 2400" REMOTEMACHINE="192.168.178.16" USER=root KEY_FOR_VU=pli_ultimo4kkey TMP=/tmp HD2400_ORG_LOG=samba_deamon_start.log COPIED_LOG_ON_VU=hd2400_samba_deamon_start.log rm -f $TMP/$COPIED_LOG_ON_VU if ! ping -c 5 $REMOTEMACHINE ; then echo -e "\n$BOX nicht eingeschalten (online),\nLog kopieren daher unmoeglich.\n" exit 1 else if scp -S dbclient -i ~/.ssh/$KEY_FOR_VU $USER@$REMOTEMACHINE:$TMP/$HD2400_ORG_LOG $TMP/$COPIED_LOG_ON_VU ; then echo -e "\n$HD2400_ORG_LOG der Box;\n\"$BOX\" erfolgreich als;\n$TMP/$COPIED_LOG_ON_VU\nkopiert.\n" else echo -e "\n*** Log kopieren fehlgeschlagen. ***" fi fi exit
Na ja - wird auch völlig ohne Kontrollscript gut laufen (muss man nicht unbedingt haben) wollte nur erwähnen was halt so möglich ist.
Grüsse
PikeGeändert von Pike_Bishop (11.03.2020 um 18:54 Uhr)
-
11.03.2020, 17:35 #23
- Registriert seit
- 20.04.2013
- Beiträge
- 24.945
- Thanks (gegeben)
- 4700
- Thanks (bekommen)
- 9130
- Total Downloaded
- 596,61 MB
- Total Downloaded
- 596,61 MB
Box 1:GB Q4K-SC / UE4K-SC / UE4K-CBox 2:GigaBlue Q-SSC / Q+-SSCBox 3:DM900uhd-SS / Vu+DuoBox 4:ZGemma H7/H9 SF8008Box 5:diverse andere . . .Dann bin ich aber gespannt, was dein Script mit dem nun fehlenden / weggefallenen nmbd macht.
Grüßle
Ralf
---------------------------------------------
Gigablue Quad4K-mixed, UE4K, Trio4K, Quad_Plus-SSC, UE_Plus-SC, X2/X3-SC, UltraUE-SC, ...
Astra 19.2E UniCable & KabelBW, oATV/teamBlue
(u.a.: DM900uhd,Vu+Duo,ZGemma H9Twin & H7S), PC-DVB-S/C/T, Xtreamer, BDP5200, Philips 24PFS4022/12, 65OLED855/12,UE32C5700, RPi3+
---- Einen Receiver kann sich jeder kaufen - Eine stabile E²-Box muß man sich verdienen! ----
-
11.03.2020, 18:01 #24
- Registriert seit
- 11.02.2020
- Ort
- here and there
- Beiträge
- 2.443
- Thanks (gegeben)
- 649
- Thanks (bekommen)
- 1660
- Total Downloaded
- 0
- Total Downloaded
- 0
Box 1:Mutant HD2400Box 2:VU Ultimo 4KBox 3:Octagon SF8008Box 4:Gigablue Quad 4KBox 5:VDRNun ja man kann nicht immer up to date sein, aber das Script dahingehend anzupassen is doch kein Problem.
EDIT !
Habs angerpasst im letzten Post - gibt jetzt eine Version für OpenATV-6.3 und älter (oder is der nmbd auch im OpenATV-6.3 rausgeflogen ?)
und ne zweite Version ohne nmbd für ab OpenATV-6.4.
Grüsse
PikeGeändert von Pike_Bishop (11.03.2020 um 18:19 Uhr)
-
Danke - 1 Thanksfaximan bedankten sich
Lesezeichen