MLD-5.x > x86 Systeme (PC)

MLD 5.2 Server-Host Communication unsauber

<< < (5/7) > >>

Atoq:
Moin,
da der untere Rechner ja auch eine DVB-S2 Karte hat, braucht der sich das TV-Programm nicht vom Server streamen zu lassen.
Da das Streaming dazu führte, dass der Client partout nicht auf die eigene SAT-Karte zugegriffen hat,  habe ich die gemeinsam genutzten Sat-Karten im streamdev-client-plugin auf 0 gesetzt.
Daher gibt's keine offene Streamdev Verbindung. :-\

Aber der Client mounted doch das /data/tv -Verzeichnis des Servers.
Wieso taucht das denn dann nicht auf?

Es muss doch einen Trick geben, da einen virtuellen Finger drauf zu legen, damit der Server mitbekommt, dass der Client online ist.
Irgendwie beim start des Client nach dem Mount einen edit auf eine Datei Client-On.dat legen und diesen erst beim shutdown wieder zu canceln, oder so?

Oder muss man in dem script, das den Shutdown des Servers einleitet mit einem ping prüfen, ob der Client noch an ist?

clausmuus:
Hi,
ja, das mit dem Ping wäre eine Lösung Deiner besonderen Konstellation. Wenn Du im Ordner /etc/vdr/shutdown.d ein Script erstellst, das einen exit code ungleich 0 zurückgibt, wenn der Client anpingbar ist, wird der Server nicht herunterfahren.

Mir ist inzwischen aber eingefallen, wo sich die Priorität von DVB Devices einstellen lässt. Beim Streamdev-Client VDR Plugin lässt sich in den Plugin Einstellungen die Priorität einstellen (oder beim Server Plugin?). Zumindest wenn ich das richtig erinnere. Ich weiß aber nicht ob sich das auch auf die Priorität gegenüber normalen DVB Devices auswirkt.

Atoq:

--- Quote from: clausmuus on January 21, 2025, 23:43:38 ---Hi,
ja, das mit dem Ping wäre eine Lösung Deiner besonderen Konstellation. Wenn Du im Ordner /etc/vdr/shutdown.d ein Script erstellst, das einen exit code ungleich 0 zurückgibt, wenn der Client anpingbar ist, wird der Server nicht herunterfahren.

--- End quote ---

Ja, Dankeschön. Jetzt muss ich ja nur noch rausfinden, wie so ein Skript aussehen muss, da ich darin leider noch keine Erfahrung habe.;-)

Das folgende habe ich hier https://www.vdr-portal.de/forum/thread/5102-remote-pr%C3%BCfen-ob-vdr-l%C3%A4uft/ im Netz gefunden, womit ein Client prüft, ob der Server schon on ist :


--- Quote ---#!/bin/bash

VDRMACHINE="192.168.1.1"

i=0
until
  ping -c 1 $VDRMACHINE 2>&1 >/dev/null;
do
  if [ "$1" -lt "10" ]; then
    echo "VDR ist offline, starte per WOL"
    /usr/bin/wakeonlan -i 192.168.10.255 00:E0:18:B5:DD:39
    let i+=1
    sleep 30
  else
    echo "Keine Netzwerkverbindung zum VDR, gebe auf"
    exit 1
  fi
done


i=0
until
  echo "quit" | netcat $VDRMACHINE 2001 2>&1 >/dev/null;
do
  echo "VDR down seit $i Versuchen"
    sleep 5
  if [ "$i" -lt "10" ] ; then
    echo "VDR läuft nicht, gebe auf"
    exit 1
  fi
  let i+=1;
done

--- End quote ---

Leider verstehe ich die Syntax nicht wirklich, meine Abfrage müsste ja auch eher umgekehrt lauten.
Ebenda findet sich auch eine Erklärung zum Ping

--- Quote ---ping -c1 $VDRMACHINE
PINGIT=$?
Ping liefert dir nämlich im Exit-Status (siehe auch Manpage), ob er das Ziel erreichen konnte oder nicht. "0" bedeutet der Ping war erfolgreich, "1" das Ziel war nicht erreichbar. Theoretisch kann's auch noch "2" geben, bei sonstigen Fehlern. Also auf "0" testen.
--- End quote ---

Wäre das Folgende dann in ein bestehendes Shutdown-Skript auf dem Server einzubauen, oder muss es ein separates Skript mit kleinerer Nummer sein, damit es zuerst ausgeführt wird?

--- Quote ---#!/bin/bash

VDRMACHINE="192.168.0.15"
ping -c1 $VDRMACHINE
PINGIT=$?
if PINGIT  = 0 then
       exit 1
  else
    exit 0
  fi

--- End quote ---

Oder ist das falsch / zu umständlich?





clausmuus:
Nein, das ist fast richtig. Es fehlt nur ein $ bei $PING und Du solltest nicht bash sondern sh verwenden.
Hier meine verbesserte Version:

--- Code: ---#!/bin/sh

SERVER="192.168.0.15"

ping -c1 $SERVER
if $?  = 0 then
  exit 1
else
  exit 0
fi
--- End code ---

Noch einfacher müsste das auch so funktionieren:

--- Code: ---#!/bin/sh

SERVER="192.168.0.15"

! ping -c1 $SERVER

--- End code ---

Atoq:
Dankeschön. Habe es gerade ausprobiert und der Server fährt sich tatsächlich nicht mehr runter. :-D

Dummerweise tut er das aber selbst dann auch dann nicht, wenn der Client offline ist.   
Der Ping-Aufruf vereitelt aus irgendeinem Grund das Herunterfahren generell. Es funktioniert also auch nicht mehr via F12 Taste :-C
Das einzige was noch geht, ist das Herunterfahren via System-Befehl, was als Workaround auch erst mal ginge, aber da muss man dann abends dran denken, den Server schlafen zu schicken  :-/

Navigation

[0] Message Index

[#] Next page

[*] Previous page

Go to full version