Dies ist der Befehl cr_checkpoint, der im kostenlosen Hosting-Anbieter OnWorks mit einer unserer zahlreichen kostenlosen Online-Workstations wie Ubuntu Online, Fedora Online, Windows Online-Emulator oder MAC OS Online-Emulator ausgeführt werden kann.
PROGRAMM:
NAME/FUNKTION
cr_checkpoint – Prüfpunkte für einen Prozess, eine Prozessgruppe oder eine Sitzung.
ZUSAMMENFASSUNG
cr_checkpoint [Optionen] ID
BESCHREIBUNG
Der Aufruf von cr_checkpoint bewirkt, dass ein Prozess (mit oder ohne alle seine Nachkommen), alle
Prozesse innerhalb einer Prozessgruppe oder alle Prozesse innerhalb einer Sitzung, die mit einem Prüfpunkt versehen werden sollen.
Das Ergebnis ist eine Checkpoint-Datei (oder ein Verzeichnis mit einer Checkpoint-Datei pro Prozess), die
enthält den gesamten Status, der für den Neustart des/der Prozesse(s) zu einem späteren Zeitpunkt erforderlich ist.
Prozesse können neu gestartet werden über cr_restart(1).
Um von cr_checkpoint überprüft zu werden, muss ein Prozess die libcr.so Bibliothek (oder eine der
seine Verwandten) geladen. Dies kann erreicht werden, indem das Programm mit cr_run(1) oder durch
Verknüpfen Sie Ihre Anwendung mit -lcr. Oder die Bibliothek wird möglicherweise von anderen Bibliotheken geladen,
verknüpft haben (z. B. eine Checkpoint-fähige MPI-Bibliothek) oder den parallelen Job Ihres Systems
Startskript usw. Weitere Informationen finden Sie in Ihrer Systemdokumentation.
Reichen Sie das Erstellung/Ersetzung
Standardmäßig (oder wenn --atomar ist übergeben) cr_checkpoint erstellt die neue Kontextdatei/das neue Kontextverzeichnis
atomar: Entweder schlägt der Prüfpunkt fehl (und jede vorhandene Kontextdatei/jedes vorhandene Kontextverzeichnis wird
unverändert), oder es erscheint im Verzeichnis und kann von cr_restartWenn eine bestehende
Checkpoint mit dem gleichen Dateinamen existiert, wird dieser entweder unverändert bleiben (wenn der neue
Checkpoint schlägt aus irgendeinem Grund fehl) oder atomar ersetzt (über umbenennen(2). Wenn
--Sicherung[=NAME/FUNKTION] übergeben wird, wird stattdessen jeder vorhandene Prüfpunkt gesichert, entweder auf
NAME/FUNKTION oder mit einer nummerierten Erweiterung (.~1~, .~2~usw., wobei neuere Kontrollpunkte
höhere Zahlen). Wenn --Klamotten passiert ist, entfernt der Kontrollpunkt sofort alle
vorhandene Checkpoint-Dateien und schreibt den Checkpoint direkt in das Ziel
Datei/Verzeichnis: Diese Option verbraucht weniger Speicherplatz, wenn ein vorhandener Prüfpunkt vorhanden ist.
da der alte Prüfpunkt sofort verworfen wird, aber wenn der Prüfpunkt fehlschlägt, wird der vorherige
Der bestehende Kontrollpunkt geht verloren. Schließlich, wenn --noclobber passiert ist, dann wird der Checkpoint
schlägt fehl, wenn die Zieldatei/das Zielverzeichnis vorhanden ist.
Reichen Sie das synchronisieren
Standardmäßig (oder wenn --sync übergeben wird), wartet cr_checkpoint, bis der Checkpoint
komplett im Speicher und ruft zusätzlich fsync(2) auf alle betroffenen Dateien und Verzeichnisse
im Checkpoint (einschließlich Sicherungsdateien) auf die Festplatte, bevor Sie beenden. --nosync
bewirkt, dass diese fsync-Aufrufe übersprungen werden.
Timeout
Ein maximales Timeout in Sekunden kann für einen Checkpoint über die --Zeit Flagge: Wenn die
checkpoint dauert länger als dies, cr_checkpoint wird eine Fehlermeldung ausgeben und beenden mit
ein Fehler. Wenn ein Timeout auftritt, wird der Status des Prozesses oder der Prozesse, die
Checkpointed ist nicht definiert.
Signale
Standardmäßig werden Prozesse mit Prüfpunkten auch nach Abschluss eines Prüfpunkts weiter ausgeführt.
Alternativ können Sie festlegen, dass sie gestoppt werden (über --halt), oder
beendet/abgebrochen/getötet (über --Begriff, --abbrechen oder --töten). Dies geschieht durch das Senden der
entsprechendes Signal an jeden Prozess, der Teil des Checkpoints ist. Wenn die Prozesse
zum Zeitpunkt der Checkpoint-Anforderung angehalten wurde, dann --cont kann zum Senden von SIGCONT verwendet werden
für alle Prozesse, nachdem der Prüfpunkt abgeschlossen ist.
Memory abgebildet Dateien
Standardmäßig enthalten Prüfpunkte keine Dateien, die in den Prozess mmap()ed sind
Adressraum, sofern sie zum Zeitpunkt des Prüfpunkts nicht bereits getrennt sind. Dies
ist eine platz- und zeitsparende Optimierung unter der Annahme, dass die benötigten Dateien
beim Neustart noch vorhanden (und unbeschädigt) sein. Die größten Einsparungen ergeben sich in der Regel
vom Nichtspeichern der ausführbaren Datei oder dynamischen (auch bekannt als gemeinsam genutzten) Bibliotheken. Allerdings Optionen
existieren, um den Prüfpunkt zu veranlassen, diese Dateien auch zu speichern. Das Flag --save-exe wird verursachen
die ausführbare Datei, die in die Kontextdatei aufgenommen werden soll. Das Flag --save-private werden wir
Fügen Sie in die Kontextdatei alle Dateien ein, die mit dem Flag MAP_PRIVATE zugeordnet sind.
unter Linux umfasst die ausführbaren und dynamischen/gemeinsamen Bibliotheken. Das Flag --save-shared
dient zum Speichern von Dateien, die mit dem Flag MAP_SHARED gemappt sind. Beachten Sie, dass dies nicht die
Flag, das Sie für gemeinsam genutzte Bibliotheken wünschen. Beim Neustart wird jede Datei, die mit diesen Flags gespeichert wird,
in den Prozess abgebildet, unabhängig davon, ob am ursprünglichen Speicherort eine Datei vorhanden ist.
Wenn sich die Datei am ursprünglichen Speicherort befindet, bleibt sie vom Neustart unberührt. Schließlich
--Rette alle und --save-none bewirkt, dass alle (oder keine) dieser optionalen mmaped-Dateien
gespeichert. Der Standardwert ist --save-none. Wenn Sie mehrere dieser Optionen angeben, werden sie
von links nach rechts verarbeitet, wobei alle Optionen additiv sind, außer --save-none welche
hebt die Wirkung aller zuvor angezeigten Optionen auf.
Checkpointing ptrace()ed und Materialstammdaten
Es gibt (derzeit) keine Möglichkeit, vollständig transparent mit Checkpoints von Prozessen umzugehen, die
werden verfolgt mit ptrace(2). Daher ist das Standardverhalten (auch verfügbar über
--ptraced-Fehler) ist es, einen Fehler zurückzugeben, wenn einer der zu prüfenden Prozesse
aktuell ptracet wird. Es gibt jedoch zwei weitere mögliche Verhaltensweisen, zwischen denen Sie wählen können:
--ptraced-skip
Ptraced-Prozesse werden automatisch vom Checkpoint ausgeschlossen. Es wird kein Fehler
generiert, es sei denn, dies führt zu null Prüfpunkten für Prozesse.
--ptraced-allow
Für Ptraced-Prozesse werden wie für alle anderen Prozesse Prüfpunkte erstellt. WARNUNG:
Da der Checkpoint-Prozess und das BLCR-Kernelmodul über
Signale und Systemaufrufe, muss der Debugger (oder ein anderer Tracer) möglicherweise die
Zielprozess(e), möglicherweise mehr als einmal, um die Durchführung des Prüfpunkts zu ermöglichen.
Checkpointing ptrace() und Materialstammdaten
Es gibt (derzeit) keine Möglichkeit, vollständig transparent mit Checkpoints von Prozessen umzugehen, die
verfolgen andere Prozesse mit ptrace(2). Daher ist das Standardverhalten (auch
verfügbar über --ptracer-Fehler) ist die Rückgabe eines Fehlers, wenn einer der zu
Checkpointed verfolgen derzeit andere Prozesse. Allerdings --ptracer-skip verfügbar
um cr_checkpoint zu veranlassen, solche Prozesse stillschweigend vom Checkpoint auszuschließen. Kein Fehler
wird in diesem Fall generiert, es sei denn, dies würde zu null Prüfpunkten für Prozesse führen.
OPTIONAL
Allgemein Optionen:
-v, - ausführlich
Fortschrittsmeldungen auf stderr drucken.
-q, --ruhig
Unterdrückt Fehler-/Warnmeldungen an stderr.
-?, --help
Drucken Sie diese Nachricht und beenden Sie das Programm.
--Version
Versionsinformationen drucken und beenden.
Optionen für kann of die Kontrollpunkt:
-T, --Baum
ID identifiziert eine Prozess-ID. Für diesen Prozess und alle seine Nachkommen muss ein Prüfpunkt erstellt werden.
Dies ist der Standardwert.
-p, --pid, --Prozess
ID identifiziert eine einzelne Prozess-ID.
-g, --pgid, --Gruppe
ID identifiziert eine Prozessgruppen-ID.
-s, --sid, --Sitzung
ID identifiziert eine Sitzungs-ID.
Optionen für Reiseziel Standort of die Kontrollpunkt:
-c, --cwd
Prüfpunkt wird als einzelne „context.ID“-Datei im Arbeitsverzeichnis von cr_checkpoint gespeichert
(Standard).
-d, --dir DIR
Prüfpunkt im neuen Verzeichnis DIR gespeichert, mit einer „context.ID“-Datei pro Prozess
(nicht implementiert).
-f, --Datei FILE
Prüfpunkt als DATEI gespeichert.
-F, --fd FD
Prüfpunkt in einen offenen Dateideskriptor geschrieben.
Optionen für Erstellung/Ersetzung Datenschutzrichtlinien für Kontrollpunkt Dateien:
--atomar
Prüfpunkt wird atomar erstellt/ersetzt (Standard).
--Sicherung[=NAME/FUNKTION]
Prüfpunkt atomar erstellt, und alle vorhandenen Prüfpunkte werden auf NAME oder
*.~1~, *.~2~ usw.
--Klamotten
Prüfpunkt inkrementell auf das Ziel geschrieben, wobei alle bereits vorhandenen überschrieben werden
Checkpoint.
--noclobber
Der Prüfpunkt schlägt fehl, wenn die Zieldatei vorhanden ist.
Diese Optionen werden ignoriert, wenn das Ziel ein Dateideskriptor ist.
Optionen für Signal geschickt zu Prozess(e) nachdem Kontrollpunkt:
--Lauf kein Signal gesendet: Ausführung fortsetzen (Standard).
-S, --Signal NUM
Signal NUM an alle Prozesse gesendet.
--halt SIGSTOP wird an alle Prozesse gesendet.
--Begriff SIGTERM wird an alle Prozesse gesendet.
--abbrechen
SIGABRT an alle Prozesse gesendet.
--töten SIGKILL wird an alle Prozesse gesendet.
--cont SIGCONT wird an alle Prozesse gesendet.
Optionen in dieser Gruppe schließen sich gegenseitig aus. Wenn mehr als eine Option angegeben ist, dann
der Letzte wird geehrt.
Optionen für Datei fragst Synchronisation (Standard is --sync):
--sync fsync-Checkpoint-Datei(en) auf die Festplatte (Standard).
--nosync
Führen Sie keine Fsync-Checkpoint-Datei(en) auf die Festplatte durch.
Optionen zu Speichern optional Portionen of Erinnerung:
--save-exe
Speichern Sie die ausführbare Datei.
--save-private
Speichern Sie private zugeordnete Dateien. (Ausführbare Dateien und Bibliotheken werden auf diese Weise zugeordnet.)
--save-shared
gemeinsam genutzte zugeordnete Dateien speichern. (System V IPC wird auf diese Weise zugeordnet).
--Rette alle
Speichern Sie alles oben genannte.
--save-none
Speichern Sie nichts von dem oben genannten (Standard).
Optionen für ptrace und Materialstammdaten (Standard is --ptraced-Fehler):
--ptraced-Fehler
Gibt einen Fehler zurück, wenn für einen verfolgten Prozess ein Prüfpunkt angefordert wird.
--ptraced-skip
ptrace-Prozesse werden stillschweigend von der Checkpoint-Anforderung ausgeschlossen. Wenn der
Prüfpunktbereich ist --Baum, dann werden auch alle Kinder solcher
Prozesse. Es wird kein Fehler erzeugt, es sei denn, dies führt zu Null-Prozessen
Prüfpunkt.
--ptraced-allow
Checkpoint-ptrace-Prozesse normal. WARNUNG: Dies kann erfordern, dass der Tracer
„Fortsetzen“ Sie den/die Zielprozess(e), möglicherweise mehr als einmal.
Optionen für und Materialstammdaten ptracing Extras (Standard is --ptracer-Fehler):
--ptracer-Fehler
Gibt einen Fehler zurück, wenn ein Prüfpunkt für einen Prozess angefordert wird, der andere verfolgt.
--ptracer-skip
Prozesse, die andere verfolgen, werden stillschweigend von der Checkpoint-Anforderung ausgeschlossen. Wenn
der Prüfpunktumfang ist --Baum, dann werden auch alle Kinder solcher
Prozesse. Es wird kein Fehler erzeugt, es sei denn, dies führt zu Null-Prozessen
Prüfpunkt.
Optionen für Kern Log Nachrichten (Standard is --kmsg-Fehler):
--kmsg-none
keine Kernel-Meldungen melden.
--kmsg-Fehler
bei Checkpoint-Fehlern alle Kernel-Meldungen im Zusammenhang mit dem
Checkpoint-Anforderung.
--kmsg-warning
alle mit der Checkpoint-Anforderung verbundenen Kernel-Meldungen auf stderr melden,
unabhängig von Erfolg oder Misserfolg. Nachrichten, die ohne Misserfolg generiert werden, sind
als Warnungen betrachtet werden.
Optionen in dieser Gruppe schließen sich gegenseitig aus. Wenn mehr als eine Option angegeben ist, dann
der Letzte wird geehrt. Beachten Sie, dass --ruhig unterdrückt alle stderr-Ausgaben,
einschließlich dieser Nachrichten.
Sonstiges Option:
-t, --Zeit SEK
erlauben Sie dem Ziel nur SEC-Sekunden, um den Prüfpunkt abzuschließen (Standard: warten
unbegrenzt).
Beispiele:
Um den Prozess mit der Prozess-ID 23452 zu überprüfen und seinen Status in einer Datei zu speichern Kontext.23452:
cr_checkpoint -p 23452
Um alle Prozesse in der Prozessgruppe 68473 zu überprüfen und in einer Datei zu speichern Groupie:
cr_checkpoint -g -f Groupie 68473
Um den gesamten Prozess in Sitzung 8362 zu überprüfen und separate 'context.PID'-Dateien für
jeder Prozess im Verzeichnis „my_checkpoints“:
cr_checkpoint -s -d meine_Kontrollpunkte 8362
Verwenden Sie cr_checkpoint online mit den Diensten von onworks.net
