Frage

Ich möchte wissen, was sind die Methoden existieren, um die Gesundheit eines Prozesses zu überprüfen. Bedenkt man, dass auf einem System 10000 Prozess ausgeführt werden, und Sie müssen sicherstellen, dass im Fall eines dieses Verfahrens untergeht wir den Prozess machen müssen.

War es hilfreich?

Lösung

Verwenden Sie die Prozess-ID (PID) und Abstimmung fest, ob der Prozess noch lebt oder tot ist periodisch; und wenn es tot ist, dann wieder zu beleben es.

Wenn Sie jedoch 10000 Prozess haben, werden Sie treffen wahrscheinlich der erste Prozess Grenze des OS. Ich schlage vor, neu zu gestalten Ihr Programm, so dass Sie so viele Prozesse in erster Linie nicht brauchen.

Andere Tipps

Re-Laichen Prozesse, die nach unten gehen in der Regel behandelt durch spezifische Programme Launcher exec mit () das Programm und die Wartezeit für einen SIGCHILD der Kind-Prozess, um anzuzeigen, beendet.

Für Bootzeit-Anwendungen (Server etc.) Daemons wie Emporkömmling kann dies automatisch für Sie tun.

Während andere weisen darauf hin, dass Anwendungen, die bereits vorhanden ist (die Sie wirklich verwenden sollten, wenn Sie einen klaren Grund, nicht zu haben) werde ich eine zufällige Idee für eine eigene Lösung wegzuwerfen.

Wenn Sie alle N Prozesse steuern, dann sie alle haben eines gemeinsam genutzten Speicherbereich N Bits groß (so, 10000 Prozesse ~ 1 KB, nicht schlecht) machen. Wenn jeder Prozess beginnend geben ihm eine Nummer, i, im Bereich von 0 bis N. Jeder T Sekunden jeden Prozess haben wird Bit i in dem gemeinsam genutzten Speicher zu 1. Ein Überwachungsprozess eingestellt überprüfen kann, dass alle N Bits 1 sind alle k*T Sekunden, Zurücksetzen sie alle auf 0 in den Prozess einzubeziehen.

Dies ist immer noch O (n), die Sie nicht vermeiden, aber die Grundelemente sind alle sehr schnell und sollte in Ordnung bis zum OS-Thread Grenze skaliert werden.

Eine alternative Idee i zum Erhalt wäre nur die PID zu verwenden, aber dann der Shared-Memory wird größer sein (wird wahrscheinlich noch in Ordnung sein, obwohl, zum Beispiel des Linux PID Bereich klein ist) muß

.

gibt es ein Programm namens monit , die tut, was Sie suchen. Aber es ist für einige wichtige Prozesse in Linux .. alle 10000-Prozesse sind wichtig !!!

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top