Mit php, Pc Neustart ausführen! Möglich?

gixnetwork

Erfahrenes Mitglied
Hallo
Ich Betreibe eine Wetterstation die "Live" Daten Liefert. Leider "Hängt" sich die Software öfters mal auf. :(

Heutige Situation - zustand:
Wetter Hardware ( Davis ) sendet im ca. 3 sec. Abstand, Daten an PC (Win 7 64bit).
Der PC sendet Daten an den Externen Server.

Nun habe ich ein Script welches überprüft ob die Daten auf dem server Aktuell sind.
Wenn die Daten nicht aktuell sind, bekomme ich automatisch eine Email.


Ist es Möglich, per PHP, einen PC Neu zu Starten - Restart?
Oder...
Ist es Möglich, dass ein PC, durch den Empfang eines E-Mails, Neu zu Starten - Restart?


Vermutlich müste ich ein server program (Xamp) auf dem pc installieren.
Mit Dyndns! Dann das überprüfungs script auf dem "Pc server" ausführen.
Fals daten nicht aktuell , "pc server" Neustarten!

Geht das evenutell ?

Muss nicht zwingend PHP Sein, kann mir aber nix anderes Vorstellen......
o_O ev. Silverlight da Microsoft

BINN KEIN HACKER DER MISSBRAUCH BETREIBEN MÖCHTE! :cool:
 
Hi

aslo das Programm am PC daheim spinnt, und dann schickt der Server ein Mail weil keine Daten gekommen sind?
 
Ist es nicht etwas extrem, deshalb gleich den gesamten Rechner neuzustarten? Würde es nicht reichen, das mit der Software zu tun?

Prinzipiell geht so was aber mit PHP (beziehungsweise Shell-Aufrufen über das PHP-Script), wenn ein Script mit passenden Rechten gestartet werden kann.
 
Ist es nicht etwas extrem, deshalb gleich den gesamten Rechner neuzustarten? Würde es nicht reichen, das mit der Software zu tun?
Ja, die Software neuzustarten würde auch ausreichen. Es sind 2 programme Wswin (wetter) und Fling (ftp) die sich ab und zu aufhängen.
Ich kann nicht ermitteln welches der Programme gerade nicht läuft.
Auserdem tut es dem Windows Pc gut, wenn er mal neustarten darf. (365 24h Dauerbetrieb) (Shutte PC mit ssd)

Prinzipiell geht so was aber mit PHP (beziehungsweise Shell-Aufrufen über das PHP-Script), wenn ein Script mit passenden Rechten gestartet werden kann.

Ja, toll, es ist möglich.
(beziehungsweise Shell-Aufrufen über das PHP-Script) das sagt mir jetzt nix.

Jetzt hab ich mal nen Ansatz.

Besten Dank
 
Also am Server kann auch herumgeändert werden, das macht die Sache einfacher.
Welches Betriebssystem hat der PC?
Ich würde da nicht extra PHP und Dyndns etc. aufsetzen, das geht einfacher.

1) Der Cronjob am Server erstellt kein Email (oder nicht nur), sondern speichert
das (zusätzlich) irgendwo ab, dass gerade etwas fehlgeschlagen ist und der PC es noch nicht weiß.

2) Eine ganz einfache PHP-Seite machen, die nur das prüft und zB. den Text 0 oder 1 für Nein und Ja ausgibt.
Also wenn das oben Genannte nicht gespeichert ist, 0 ausgeben. Sonst 1 ausgeben und das Gepspeicherte
entfernen (weil der PC das dann erfahren hat, siehe 3)

3) Am PC auch regelmäßig etwas (ein normales Shellscript) ausführen lassen, das zB. mit Hilfe von curl
prüft, ob diese PHP-Seite 1 oder 0 sagt, und bei 1 eben Rechner oder Programm neustarten.

edit: Ah, Windows. Gut, Frage oben beantwortet.
 
Also am Server kann auch herumgeändert werden, das macht die Sache einfacher.
Welches Betriebssystem hat der PC?
Ich würde da nicht extra PHP und Dyndns etc. aufsetzen, das geht einfacher.

1) Der Cronjob am Server erstellt kein Email (oder nicht nur), sondern speichert
das (zusätzlich) irgendwo ab, dass gerade etwas fehlgeschlagen ist und der PC es noch nicht weiß.

2) Eine ganz einfache PHP-Seite machen, die nur das prüft und zB. den Text 0 oder 1 für Nein und Ja ausgibt.
Also wenn das oben Genannte nicht gespeichert ist, 0 ausgeben. Sonst 1 ausgeben und das Gepspeicherte
entfernen (weil der PC das dann erfahren hat, siehe 3)

3) Am PC auch regelmäßig etwas (ein normales Shellscript) ausführen lassen, das zB. mit Hilfe von curl
prüft, ob diese PHP-Seite 1 oder 0 sagt, und bei 1 eben Rechner oder Programm neustarten.

Also, script überprüft od datei älter als zb. 5min dann echo 1 sonst 0.
dann am pc mit shellscript prüfen ob echo 0 oder 1.
bei 1 pc neustarten.

Richtiger gedanke?

Unix-Shells
http://de.wikipedia.org/wiki/Unix-Kommando#Unix-Shells
CURL
http://de.wikipedia.org/wiki/CURL

hoffe ich lese das richtige..
 
Zuletzt bearbeitet:
Hi gixnetwork,

die Frage, welche sich mir bei deinem Anliegen stellt, ist erstmal ob der Computer komplett hängen bleibt, also von außen auch keine Befehle entgegen nehmen kann, oder sich nur das Programm verabschiedet.

Wenn sich nur das Programm verabschiedet, wäre es vielleicht möglich, durch aufrüsten der Hardware den Computer leistungsfähiger zu machen, das dieses Programm nicht mehr abstürzt und dann regelmäßige geplante Neustarts durchzuführen.

Wenn sich der ganze Computer verabschiedet, wirst du von außen auch keinen Neustart mehr ausführen können und dann wirst du um stärkere Hardware auf keinen Fall rund rum kommen.

Ein Programm, welches den Computer neustartet, würde ich auf Consolenebene im Background laufen lassen, welches auf dem Server überprüft, ob die Daten aktuell sind und wenn nicht, dann das Programm neustartet. Sollte das Programm innerhalb von einer eingestellten Zeit (15 oder 60 Minuten) mehrfach z.B. 3 mal Probleme machen und neugestartet wurden sein, so wird der Computer neugestartet.

Zum Schreiben eines solchen Consolenprogramms, würde ich dir Microsoft Visual Studio Express empfehlen. Als Projekttype würde ich dir C# (C-Sharp) empfehlen, sofern du dich bereits mit dem Objektorientierten Programmieren mit PHP etwas auskennst, wird dir der Umstieg vielleicht nicht zu schwer fallen.

Aber wie oben bereits erwähnt, wird dir bei einem Komplettabsturz der Hardwäre keine Software und auch kein Neustartversuch von außen helfen.

Gruß Matze202.
 
Besten Dank

Ich schau mir Microsoft Visual Studio Express mit C-Sharp mal an. danke

Ps. Software hängt sich auf, vermutlich wegen der extrem beanspruchter (wetter hardware) nach ca 3 tagen Dauerbetrieb im 3 secunden takt. (usb datenloger)
Leider bringt ein gamer pc auch keine besserung. (32ddr3 amd 8x 5ghz ssd)
 
ich bin mir aber sicher, wenn es schon so hochwärtige Hardware drin steckt, das es Probleme mit der Software gibt, welche die Werte ausliest.

Wenn du dich mit dem C# fit machst, wirst du dir vielleicht besser gleich ne neue Software programmieren, welche dann ohne große Fehler, die Daten ausliest und absendet, dafür brauchst du dann auch das FTP-Programm nicht mehr. ;)
 

Neue Beiträge

Zurück