+ Antworten
Seite 2 von 20 ErsteErste 1 2 3 4 12 ... LetzteLetzte
Ergebnis 11 bis 20 von 199

Thema: IPSWatchDog

  1. #11
    Registriert seit
    Feb 2010
    Ort
    Bremen
    Beiträge
    213

    Hallo Dr. S.

    Zitat Zitat von Doctor Snuggles Beitrag anzeigen
    ihr schreibt hier, das das Programm in die Autostart soll?
    Wäre es nicht sinniger, dies von IPS herraus starten zu lassen?
    Gute Idee. Man kann IPSWatchDog sicherlich per Skript starten.
    Gibt es denn in IPS eine Möglichkeit, ein Skript nach IPS-Start auszuführen?

    Zitat Zitat von Doctor Snuggles Beitrag anzeigen
    Was passiert denn eigentlich, wenn es in der Autostart eingebunden ist und der IPS Dienst nicht gestartet werden werden, startet der Server dann wärend meines Urlaubes ein paar tausend Mal neu oder habe ich da Denkfehler.
    Hm, ja, ich denke, er würde immer und immer wieder starten. Hier wäre es sicher eine Möglichkeit, einen Zähler einzubauen, der IPSWatchDog nach einer gewissen Anzahl von Versuchen aufgeben lässt. Ich behalte das mal im Auge.

    Derzeit heisst es grundsätzlich: Serverdienst geht nicht -> Es wird versucht, den Dienst zu starten -> Falls das nicht klappt, wird der Rechner neu gebootet. Und das ginge dann stundenlang so.

    Zitat Zitat von Doctor Snuggles Beitrag anzeigen
    Übrigens finde ich das Projekt echt klasse.
    Ich hatte mich schon gewundert, das für den Fehlerfall hier noch nichts von IPS entwickelt worden ist.
    Danke für das Kompliment . Ja, ich hatte mich auch schon gewundert, dass es ähnliches noch nicht gab.

    Cheers,

    Andreas

  2. #12
    Registriert seit
    Sep 2005
    Beiträge
    1,414

    Hallo zusammen,

    klar geht das, mache ich schon immer so.

    Ihr könnt jeweils ein Script anlegen, welches bei starten und beenden von IPS ausgeführt wird. Das Shutdown-Script wird dann sicherlich bei einem Absturz nicht immer 100%ig ausgeführt aber das Startscript sollte ja immer laufen.

    Dort könnte man den Watchdog einfach einbinden oder was weiss ich nicht alles mit einbinden. Bei mir werden beim starten einige Dinge geprüft und Variablen gesetzt.

    Findet ihr übrigens in den Kerninstancen beim Event Handler.

    Grüße,
    Doc

  3. #13
    Registriert seit
    Feb 2010
    Ort
    Bremen
    Beiträge
    213

    Moin Doc,


    Zitat Zitat von Doctor Snuggles Beitrag anzeigen

    klar geht das, mache ich schon immer so.

    Ihr könnt jeweils ein Script anlegen, welches bei starten und beenden von IPS ausgeführt wird. Das Shutdown-Script wird dann sicherlich bei einem Absturz nicht immer 100%ig ausgeführt aber das Startscript sollte ja immer laufen.

    Dort könnte man den Watchdog einfach einbinden oder was weiss ich nicht alles mit einbinden. Bei mir werden beim starten einige Dinge geprüft und Variablen gesetzt.

    Findet ihr übrigens in den Kerninstancen beim Event Handler.
    aaah! Prima. Das werde ich mal ausprobieren.

    Allerdings ist mir ein Bedenken gekommen: gesetzt dem Falle, dass beim Hochfahren des Rechners und damit IPS, der Server von IPS nicht richtig gestartet wird (kam bei mir schon zwei oder drei Male vor - warum auch immer), dann werden keine Skripte ausgeführt und somit IPSWatchDog auch nicht gestartet.
    Das spräche dann wieder für die Autostartmethode.

    Cheers,

    Andreas

  4. #14
    Registriert seit
    Jan 2007
    Ort
    Nidda(Hessen)
    Beiträge
    7,330

    Hallo Andreas,

    ich habe das ganze mal zusammen gefasst, der Übersicht halber. Mache deine Änderungen im ersten Post, dann ist alles beisammen.
    Gruß Rainer


    Unmögliches wird sofort erledigt, Wunder dauern etwas länger.


  5. #15
    Registriert seit
    Apr 2007
    Ort
    Lüneburg
    Beiträge
    3,337

    Hallo Leute,

    hier nun mal als Diskussiongrundlage die Erweiterung des Basisskriptes um die Funktionaliät, dass eine Variable mit der letzten Meldung, und eine mit allen Meldungen gefüllt wird (ab Version 1.0.4.!)

    PHP-Code:
    <?

    // Dieses Skript legt eine Kontrolldatei für IPSWatchDog an.
    // Es muss alle 15 Sekunden ausgeführt werden

    define("DateiName""..\alive.ips"); //Dateiname für alive Datei definieren
    // normalerweise würde die Datei im Verzeichnis \IPS-SYMCON\SCRIPTS angelegt
    // durch ..\ wird sie jedoch im Wurzelverchnis von IPS erstellt, also dort, wo auch ips.exe und IPSWatchDog.exe liegen

    //Datei vorhanden?
    $dateifehlt = !file_exists(DateiName);

    //falls die Datei fehlt, neu anlegen
    if ($dateifehlt) {
            
    $inhalt date("d.m.y - H:i"); // Ich habe nur zu Kontrollzwecken etwas in die Datei geschrieben. Sie kann aber auch leer bleiben
            
    $datei fopen(DateiName"a");
            
    fwrite ($datei$inhalt);
            
    fclose($datei);
            }

    //LogDatei öffnen um Werte in die Variablen zu schreiben
    $AlleMeldungen 16588 /*[Sonstige Daten\IPS Watch Dog\Alle Meldungen]*/ //Variable Typ String, Darstellung HTML-Box
    $LetzteMeldung 53872 /*[Sonstige Daten\IPS Watch Dog\Letzte Meldung]*/ //Variable Typ String, Darstellung HTML-Box
    $Dateipfad IPS_GetKernelDir()."IPSWatchDog.log";

    $LogText "";
    // Öffnen der Datei
    $handle fopen($Dateipfad,"r");
        
    // Schleife so lange durchlaufen, wie Zeilen vorhanden sind
        
    while ($line fgets($handle1000))
       {
        
    $LogText $LogText.$line;
       }

    //Die erste Differenzierung nach Zeilen vornehmen
    $Zeilen explode(chr(13),$LogText);
    $AnzahlZeilen = (Count($Zeilen) - 1);
    $GesamtMeldung "";

    // Nun das Ergebnis Zeile für Zeile durchgehen
    for($i=0$i $AnzahlZeilen$i++)
    {
        
    // Jetzt das spezifische Array aus den jeweiligen Zeilen füllen
        
    $Zerlegung explode(";"$Zeilen[$i]);    //[0]-Datum, [1]-Uhrzeite, [2]-Meldungstext
        
    $Meldung[$i][0]=trim($Zerlegung[0]);
        
    $Meldung[$i][1]=trim($Zerlegung[1]);
        
    $Meldung[$i][2]=trim($Zerlegung[2]);
        
    // Den Gesamtmeldungstext zusammensetzen
        
    $GesamtMeldung $GesamtMeldung."<h5>".$Meldung[$i][0]." ".$Meldung[$i][1]." ".$Meldung[$i][2]."</h5>";
        
    }
    // Die Anzeige nur aktualisieren, aber nur wenn sich etwas verändert hat
    If ((GetValueString($AlleMeldungen)) <> ($GesamtMeldung))
    {
    SetValueString($AlleMeldungen$GesamtMeldung);
    SetValueString($LetzteMeldung, ("<h5>".$Meldung[$AnzahlZeilen 1][0]." ".$Meldung[$AnzahlZeilen 1][1]." ".$Meldung[$AnzahlZeilen 1][2])."</h5>");
    }
    else
    {
    //echo "Keine Veränderung";
    }

    ?>
    Es gibt aber noch einige andere Baustellen die bearbeitet werden müssen...

    Joachim
    IP-Symcon seit 12/2009, iPhoneApp seit 01/2011, IPSView seit 12/2014!
    3xSiemensLOGO0BA7+DM16, 1xInstar 3010PoE, 1xInstar 2905PoE, 1x1-WireHub mit DS2450 von Eservice-online, 15xDS1820, 1xDS2423, 1xDS2408

  6. #16
    Registriert seit
    Apr 2007
    Ort
    Lüneburg
    Beiträge
    3,337

    Hallo Andreas,

    wie man des WatchDog bei Serverstart in Gang bringen könnten, ist ja weiter ober schon aufgezeigt worden.

    Doch wie könnte man das Programm bei gewollten Stop des Servers wieder ausschalten? Nun, eine Möglichkeit wäre vielleicht, die Datei "Alive" zu benutzen: Wenn der Server manuell heruntergefahren wird könnte ein IPS-Skript dort z.B. "STOP" eintragen, der WatchDog muss dann nicht nur der Existenz der Datei schauen, sondern auch deren Inhalt lesen. Ist der Inhalt "STOP" könnte sich der WatchDog selbst beenden.

    Wäre das ein denkbarer Weg?

    Joachim
    IP-Symcon seit 12/2009, iPhoneApp seit 01/2011, IPSView seit 12/2014!
    3xSiemensLOGO0BA7+DM16, 1xInstar 3010PoE, 1xInstar 2905PoE, 1x1-WireHub mit DS2450 von Eservice-online, 15xDS1820, 1xDS2423, 1xDS2408

  7. #17
    Registriert seit
    Feb 2010
    Ort
    Bremen
    Beiträge
    213

    Hallo Joachim,

    klar, das wäre ein Weg.
    Werde ich mal testen.
    Jetzt kann es aber ein paar Tage dauern, da mir im Moment ein wenig die Zeit fehlt.

    Grüße,

    Andreas

  8. #18
    Registriert seit
    Feb 2010
    Ort
    Bremen
    Beiträge
    213

    Hallo Joachim,

    nun habe ich es geschafft und IPSWatchDog dazu gebracht, auf den Server zu reagieren. Ich habe mich allerdings dagegen entschieden, Befehle in die Datei alive.ips zu schreiben und lasse vielmehr zwei neue Dateien anlegen. start.iwd beim Serverstart und stop.iwd beim Serverende. Der Inhalt ist wieder mal egal.

    Hier das Start-Skript:
    PHP-Code:
    <?

    define
    ("StartDateiName""..\start.iwd"); //Dateiname für Start Datei definieren
    define("StopDateiName""..\stop.iwd"); //Dateiname für Stop Datei definieren

    //erst mal alle Dateileichen löschen
    @unlink (StartDateiName);
    @
    unlink (StopDateiName);

    //Start Datei anlegen
    $inhalt date("d.m.y - H:i");
    $datei fopen(StartDateiName"a");
    fwrite ($datei$inhalt);
    fclose($datei);

    ?>
    Und das Stop-Skript:
    PHP-Code:
    <?

    define
    ("StartDateiName""..\start.iwd"); //Dateiname für Start Datei definieren
    define("StopDateiName""..\stop.iwd"); //Dateiname für Stop Datei definieren

    //erst mal alle Dateileichen löschen
    @unlink (StartDateiName);
    @
    unlink (StopDateiName);

    //Stop Datei anlgen
    $inhalt date("d.m.y - H:i");
    $datei fopen(StopDateiName"a");
    fwrite ($datei$inhalt);
    fclose($datei);

    ?>
    Das läuft bei mir sehr gut.

    Cheers,

    Andreas

    PS: ach ja, IPSWatchDog beendet sich nicht, wenn es den Stop Befehl bekommt, sondern wartet darauf, dass es wieder einen Start Befehl bekommt.

  9. #19
    Registriert seit
    Apr 2007
    Ort
    Lüneburg
    Beiträge
    3,337

    Hallo Andreas,

    wie triggerst Du denn die Skripte?

    Joachim
    IP-Symcon seit 12/2009, iPhoneApp seit 01/2011, IPSView seit 12/2014!
    3xSiemensLOGO0BA7+DM16, 1xInstar 3010PoE, 1xInstar 2905PoE, 1x1-WireHub mit DS2450 von Eservice-online, 15xDS1820, 1xDS2423, 1xDS2408

  10. #20
    Registriert seit
    Feb 2010
    Ort
    Bremen
    Beiträge
    213

    Ich habe sie in die Kerninstanzen in den Eventhandler eingetragen.