<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Prozessüberwachung]]></title><description><![CDATA[<p>Guten Morgen.</p>
<p>Zielplattform: Windows Server 2008 / Beides auf dem gleichen Host</p>
<p>Ich habe natürlich einige Dinge schon bei Google, MSDN, sowie Boardsuche gefunden. Aber die gaben mir keine Antwort.</p>
<p>Jetzt habe ich mir folgendes Schema überlegt<br />
Es gibt zwei Programme,z.B.: Prozessüberwachung und Server.</p>
<pre><code>#Prozessüberwachung#
AllociereSpeicher();
StarteServer();
ÜbergebeServerSpeicheradresseDesAllociertenSpeicher(); // Über Socket z.B
schleife(){
sleep(30sekunden);
If(TimestampÄlterAlsXXSekunden){
WinAPIFunktionenProzessKillenUndNeustarten();
};
};
#Prozessüberwachung#

-----------------------------------------------------

#Server#
ServerStartDurchProzessüberwachung
ErhalteSpeicheradresse();

StarteServerSchleife(){
SchreibeTimestampInSpeicheradresse();
Arbeiten, Arbeiten,Arbeiten..
};
#Server#
</code></pre>
<p>Man kann natürlich auch über die WinAPI mit z.B.: CreateProcess etc. arbeiten. Aber das möchte ich außen vor lassen, deshalb habe ich nicht ins WinAPI Forum geschrieben.</p>
<p>Ich muss natürlich aufpassen, dass keine Speicherleks entstehen etc.</p>
<p>Frage: Ist die Allocierung bzw. Überprüfung des Timestamps eine sinnvolle Methode?</p>
<p>Mit freundlichen Grüßen</p>
<p>EDIT: Im Nachhinein ist mir eingefallen,dass der Speicher auch geswapt werden kann?!, einfach die Timestamp in eine Datei zu schreiben.</p>
<p>Also sagen wir so, ist das mit der Timestamp eine effiziente Methode?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/295592/prozessüberwachung</link><generator>RSS for Node</generator><lastBuildDate>Sat, 15 Aug 2026 09:38:22 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/295592.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 17 Nov 2011 09:37:40 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Prozessüberwachung on Thu, 17 Nov 2011 09:49:45 GMT]]></title><description><![CDATA[<p>Guten Morgen.</p>
<p>Zielplattform: Windows Server 2008 / Beides auf dem gleichen Host</p>
<p>Ich habe natürlich einige Dinge schon bei Google, MSDN, sowie Boardsuche gefunden. Aber die gaben mir keine Antwort.</p>
<p>Jetzt habe ich mir folgendes Schema überlegt<br />
Es gibt zwei Programme,z.B.: Prozessüberwachung und Server.</p>
<pre><code>#Prozessüberwachung#
AllociereSpeicher();
StarteServer();
ÜbergebeServerSpeicheradresseDesAllociertenSpeicher(); // Über Socket z.B
schleife(){
sleep(30sekunden);
If(TimestampÄlterAlsXXSekunden){
WinAPIFunktionenProzessKillenUndNeustarten();
};
};
#Prozessüberwachung#

-----------------------------------------------------

#Server#
ServerStartDurchProzessüberwachung
ErhalteSpeicheradresse();

StarteServerSchleife(){
SchreibeTimestampInSpeicheradresse();
Arbeiten, Arbeiten,Arbeiten..
};
#Server#
</code></pre>
<p>Man kann natürlich auch über die WinAPI mit z.B.: CreateProcess etc. arbeiten. Aber das möchte ich außen vor lassen, deshalb habe ich nicht ins WinAPI Forum geschrieben.</p>
<p>Ich muss natürlich aufpassen, dass keine Speicherleks entstehen etc.</p>
<p>Frage: Ist die Allocierung bzw. Überprüfung des Timestamps eine sinnvolle Methode?</p>
<p>Mit freundlichen Grüßen</p>
<p>EDIT: Im Nachhinein ist mir eingefallen,dass der Speicher auch geswapt werden kann?!, einfach die Timestamp in eine Datei zu schreiben.</p>
<p>Also sagen wir so, ist das mit der Timestamp eine effiziente Methode?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2145530</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2145530</guid><dc:creator><![CDATA[zuckerlie]]></dc:creator><pubDate>Thu, 17 Nov 2011 09:49:45 GMT</pubDate></item><item><title><![CDATA[Reply to Prozessüberwachung on Thu, 17 Nov 2011 09:54:31 GMT]]></title><description><![CDATA[<p>Was hast du vor? Du hast zwar ne Menge gepostet, aber ich habe keine Ahnung, was du konkret erreichen willst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2145537</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2145537</guid><dc:creator><![CDATA[DocShoe]]></dc:creator><pubDate>Thu, 17 Nov 2011 09:54:31 GMT</pubDate></item><item><title><![CDATA[Reply to Prozessüberwachung on Thu, 17 Nov 2011 10:03:35 GMT]]></title><description><![CDATA[<p>Tut mir leid, bin nebenher sehr viel am machen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /><br />
Also im Endeffekt so.</p>
<p>Prozessüberwacher startet Server und erstellt leere Datei.<br />
Server überschreibt am Anfang der Schleife immer eine neue Timestamp in die Datei.<br />
Prozessüberwacher checkt jede Minute ob die Timestamp älter als XY Sekunden ist.</p>
<p>Falls ja, dann killen und neustarten.</p>
<p>Wäre es effektiv, diese Methode mittels der Timestamp?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2145541</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2145541</guid><dc:creator><![CDATA[zuckerlie]]></dc:creator><pubDate>Thu, 17 Nov 2011 10:03:35 GMT</pubDate></item><item><title><![CDATA[Reply to Prozessüberwachung on Thu, 17 Nov 2011 10:08:42 GMT]]></title><description><![CDATA[<p>Und jetzt nochmal einen Schritt zurücktreten: Was genau willst du mit dieser Konstruktion erreichen? (das Ziel, nicht der dafür verwendete Weg)</p>
<p>Wenn es dir nur darum geht festzustellen, daß der Server noch korrekt läuft, würde ich eher mit Betriebssystem-Mitteln wie Nachrichten oder Events arbeiten.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2145544</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2145544</guid><dc:creator><![CDATA[Cstoll (off)]]></dc:creator><pubDate>Thu, 17 Nov 2011 10:08:42 GMT</pubDate></item><item><title><![CDATA[Reply to Prozessüberwachung on Thu, 17 Nov 2011 10:18:28 GMT]]></title><description><![CDATA[<p>Danke</p>
<p>Ich möchte, schauen, ob der Prozess läuft oder nicht.</p>
<p>Events etc. hab ich schon vieles bei Google gefunden. Aber ich würde bzw. sollte es möglichst &quot;klein&quot; halten.</p>
<p>Es ist ja nur die Frage, ob die Vorstellung, die ich habe, sehr Fehleranfällig ist oder an sich kein Problem darstellt.</p>
<p>Ich soll so wenig Betriebssystem-Mittel nutzen wie es geht und doch eher nativ arbeiten.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2145549</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2145549</guid><dc:creator><![CDATA[zuckerlie]]></dc:creator><pubDate>Thu, 17 Nov 2011 10:18:28 GMT</pubDate></item><item><title><![CDATA[Reply to Prozessüberwachung on Thu, 17 Nov 2011 10:18:31 GMT]]></title><description><![CDATA[<p>zuckerlie schrieb:</p>
<blockquote>
<p>Danke</p>
<p>Ich möchte, schauen, ob der Prozess läuft oder nicht.</p>
<p>Events etc. hab ich schon vieles bei Google gefunden. Aber ich würde bzw. sollte es möglichst &quot;klein&quot; halten.</p>
<p>Es ist ja nur die Frage, ob die Vorstellung, die ich habe, sehr Fehleranfällig ist oder an sich kein Problem darstellt.</p>
</blockquote>
<p>Benutzt der überwachte Prozess Threads? Was passiert, wenn ein Thread stirbt, aber der Prozess noch lebt? Was tut Deiner Überwachung dann?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2145550</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2145550</guid><dc:creator><![CDATA[Tachyon]]></dc:creator><pubDate>Thu, 17 Nov 2011 10:18:31 GMT</pubDate></item><item><title><![CDATA[Reply to Prozessüberwachung on Thu, 17 Nov 2011 10:19:13 GMT]]></title><description><![CDATA[<p>Nein, er nutzt keine Threats. Das sollte ich nämlich auch vermeiden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2145551</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2145551</guid><dc:creator><![CDATA[zuckerlie]]></dc:creator><pubDate>Thu, 17 Nov 2011 10:19:13 GMT</pubDate></item><item><title><![CDATA[Reply to Prozessüberwachung on Thu, 17 Nov 2011 10:27:26 GMT]]></title><description><![CDATA[<p>Also eine Art Watchdog, der aufpasst, dass der Serverprozess noch läuft und ihn ggf. neu startet?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2145553</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2145553</guid><dc:creator><![CDATA[DocShoe]]></dc:creator><pubDate>Thu, 17 Nov 2011 10:27:26 GMT</pubDate></item><item><title><![CDATA[Reply to Prozessüberwachung on Thu, 17 Nov 2011 10:35:09 GMT]]></title><description><![CDATA[<p>Fehleranfällig vermutlich nicht, aber umständlich.</p>
<p>Ich hab' selber schonmal sowas fabriziert, wobei aber noch dazukam, daß die Beteiligten unabhängig voneinander gestartet wurden und eventuell sogar auf verschiedenen Rechnern laufen können (außerdem sind sie nicht in C/C++ geschrieben, so daß einige direktere Methoden nicht möglich waren).</p>
<p>Wenn es dir nur darum geht, ob der Server noch existiert, könnte es Probleme geben, wenn er längere Zeit (&gt;1 Min) im Inneren der Schleife unterwegs ist. Aber da würde ich mir einfach das Prozess-Handle auf den erzeugten Server-Prozess merken und per WaitForSingleObject() prüfen, ob er noch existiert.<br />
Wenn du wirklich sicherstellen willst, daß er in noch sinnvolle Arbeit verrichtet (im Sinne von &quot;Durchlauf der Hauptschleife&quot;), muß der Server regelmäßig eine Mitteilung senden, daß er noch da ist - da wäre dein Ansatz sogar eine systemunabhängige Lösung (allerdings nicht unbedingt die schnellste wegen der Festplattenzugriffe).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2145556</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2145556</guid><dc:creator><![CDATA[CStoll (off)]]></dc:creator><pubDate>Thu, 17 Nov 2011 10:35:09 GMT</pubDate></item><item><title><![CDATA[Reply to Prozessüberwachung on Thu, 17 Nov 2011 10:47:41 GMT]]></title><description><![CDATA[<p>Alles klar. Vielen Dank!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2145561</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2145561</guid><dc:creator><![CDATA[zuckerlie]]></dc:creator><pubDate>Thu, 17 Nov 2011 10:47:41 GMT</pubDate></item><item><title><![CDATA[Reply to Prozessüberwachung on Thu, 17 Nov 2011 11:03:15 GMT]]></title><description><![CDATA[<p>Ohne Timestamp:<br />
Überwacher erstellt leere Datei und wartet (sleep), prüft dann, ob Datei noch vorhanden ist, wenn ja, Prozessneustart.</p>
<p>Prozess löscht die Datei in seiner Arbeitsschleife immer wieder.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2145569</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2145569</guid><dc:creator><![CDATA[Belli]]></dc:creator><pubDate>Thu, 17 Nov 2011 11:03:15 GMT</pubDate></item><item><title><![CDATA[Reply to Prozessüberwachung on Thu, 17 Nov 2011 11:30:08 GMT]]></title><description><![CDATA[<p>Mit WinApi-Mutexobjekten geht das ohne Datei besser. Siehe CreateMutex(). <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2145575</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2145575</guid><dc:creator><![CDATA[berniebutt]]></dc:creator><pubDate>Thu, 17 Nov 2011 11:30:08 GMT</pubDate></item><item><title><![CDATA[Reply to Prozessüberwachung on Thu, 17 Nov 2011 11:58:48 GMT]]></title><description><![CDATA[<p>Siehe:</p>
<p>zuckerlie schrieb:</p>
<blockquote>
<p>Ich soll so wenig Betriebssystem-Mittel nutzen wie es geht</p>
</blockquote>
]]></description><link>https://www.c-plusplus.net/forum/post/2145585</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2145585</guid><dc:creator><![CDATA[Belli]]></dc:creator><pubDate>Thu, 17 Nov 2011 11:58:48 GMT</pubDate></item></channel></rss>