server.py durch client.py restarten?

Sockets, TCP/IP, (XML-)RPC und ähnliche Themen gehören in dieses Forum
Antworten
Benutzeravatar
Finux
User
Beiträge: 32
Registriert: Mittwoch 18. September 2019, 13:59

hallo zusammen,
ich bastel an einer client-server kommunikation.
nun frage ich mich, ob es irgendwie möglich ist durch einen tcp-verbundenen client das serverskript aus der ferne neu zu starten?

lg,
finux
Benutzeravatar
__blackjack__
User
Beiträge: 13071
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

*Irgendwie* sicherlich. Was ist denn der Zweck davon? Und was ist das für ein System? Wie wird der Server gestartet und wer/welcher Dienst überwacht den?
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
nezzcarth
User
Beiträge: 1633
Registriert: Samstag 16. April 2011, 12:47

Konzeptuell ist es nach meinem Verständnis schwer vorstellbar, gleichzeitig eine Verbindung zu halten und einen der beteiligten Prozesse neuzustarten. irgendwie geht, wenn, dann nur, fals du bereit bist, die Verbindung anschließend neu aufzubauen. Das automatische Neustarten kann zum Beispiel durch Methoden, die das Betriebssystem bereitstellt (zum Beispiel systemd unter Linux), realisiert werden, oder durch Basteleien mit mehreren Prozessen, (Doppel)forking etc.
Benutzeravatar
Finux
User
Beiträge: 32
Registriert: Mittwoch 18. September 2019, 13:59

ich möchte in der lage sein ein gerät (befindet sich in weiter ferne) auf welchem ein socket-server programm läuft von mir zu hause aus mit einer client.py zu restarten.
zweck: mögliche server.py-abstürze via restart wieder ins laufen bringen :)

wie das server-skript letztlich gestartet wird, weiß ich offen gesagt nicht, da hier meine "baustelle" zu ende ist. (projektarbeit) meine aufgabe ist lediglich eine stabile client-server kommunikation via python zu schreiben. eine "überwachung" des serverskript möchte ich auf meiner client.py ebenso ermöglichen

ich hoffe die infos geben etwas aufschluss :)
Benutzeravatar
Finux
User
Beiträge: 32
Registriert: Mittwoch 18. September 2019, 13:59

nezzcarth hat geschrieben: Mittwoch 16. Oktober 2019, 19:05 Konzeptuell ist es nach meinem Verständnis schwer vorstellbar, gleichzeitig eine Verbindung zu halten und einen der beteiligten Prozesse neuzustarten. irgendwie geht, wenn, dann nur, falls du bereit bist, die Verbindung anschließend neu aufzubauen. Das automatische Neustarten kann zum Beispiel durch Methoden, die das Betriebssystem bereitstellt (zum Beispiel systemd unter Linux), realisiert werden, oder durch Basteleien mit mehreren Prozessen, (Doppel)forking etc.
mir reicht lediglich eine möglichkeit den socketserver neu zu starten. dass ich dann eine neue verbindung aufbauen muss soll hier kein problem sein :)
allerdings möchte ich möglichkeiten ausschöpfen, wenn ein restart ausschließlich seitens client.py möglich wäre
nezzcarth
User
Beiträge: 1633
Registriert: Samstag 16. April 2011, 12:47

Finux hat geschrieben: Mittwoch 16. Oktober 2019, 19:12 ich möchte in der lage sein ein gerät (befindet sich in weiter ferne) auf welchem ein socket-server programm läuft von mir zu hause aus mit einer client.py zu restarten.
zweck: mögliche server.py-abstürze via restart wieder ins laufen bringen :)
Im ersten Post schriebst du von Serverskript, hier nun von Gerät (im Sinne von Hardwareserver?). Was von beiden meinst du denn? Solche Wartungsarbeiten führt man normalerweise durch einen Remotezugang, z.B. per ssh durch. Welches OS läuft denn auf dem Server-System?
Benutzeravatar
Finux
User
Beiträge: 32
Registriert: Mittwoch 18. September 2019, 13:59

nezzcarth hat geschrieben: Mittwoch 16. Oktober 2019, 19:19
Finux hat geschrieben: Mittwoch 16. Oktober 2019, 19:12 ich möchte in der lage sein ein gerät (befindet sich in weiter ferne) auf welchem ein socket-server programm läuft von mir zu hause aus mit einer client.py zu restarten.
zweck: mögliche server.py-abstürze via restart wieder ins laufen bringen :)
Im ersten Post schriebst du von Serverskript, hier nun von Gerät (im Sinne von Hardwareserver?). Was von beiden meinst du denn? Solche Wartungsarbeiten führt man normalerweise durch einen Remotezugang, z.B. per ssh durch. Welches OS läuft denn auf dem Server-System?
ah sry,
aufbau ist folgender:

kleines gerät (bs ist glaube ich debian), das gerät empfängt daten, die ich später mit einer client.py abrufen möchte
auf diesem gerät läuft meine server.py (python3, socketserver, tcp, ipv4, multithreading, ssl, sha512)

okay, also wenn ein restart mit einer client.py eher schwierig und kompliziert zu lösen wäre, dann wird die wartungslösung der ssh zugang sein :)
dachte nur, es gäbe vielleicht auch eine "relativ gängige methode" dies mit einer client.py zu erledigen
Sirius3
User
Beiträge: 17738
Registriert: Sonntag 21. Oktober 2012, 17:20

@Finux: hast Du Dir schon Gedanken gemacht, welches Protokoll Du implementieren willst. Da sollte ja das Neustarten sinnvoll reinpassen; wenn das nur so ein Anhängsel wäre, dann wäre eine getrennte Lösung per ssh sauberer.
Benutzeravatar
Finux
User
Beiträge: 32
Registriert: Mittwoch 18. September 2019, 13:59

Sirius3 hat geschrieben: Mittwoch 16. Oktober 2019, 19:35 @Finux: hast Du Dir schon Gedanken gemacht, welches Protokoll Du implementieren willst. Da sollte ja das Neustarten sinnvoll reinpassen; wenn das nur so ein Anhängsel wäre, dann wäre eine getrennte Lösung per ssh sauberer.
ich bin etwas irritiert.. welches protokoll meinst du? ist tcp, ipv4 und ssl kein protokoll? :shock: (ich bin nicht wirklich fit in der netzwerkthematik, verzeih, sollte ich mich gerade tierisch dumm darstellen :oops: :lol: )
Sirius3
User
Beiträge: 17738
Registriert: Sonntag 21. Oktober 2012, 17:20

Mit tcp, ipv4 und ssl baust Du nur einen Datenstrom auf, damit kann man noch nichts wirklich anfangen, außer Deine Anwendung ist es z.B. unkomprimierte 16bit-Werte mit fixer Rate zu übertragen, wobei das ja auch schon die Definition eines Protokolls ist.
Antworten