Questo è il comando cr_checkpoint che può essere eseguito nel provider di hosting gratuito OnWorks utilizzando una delle nostre molteplici workstation online gratuite come Ubuntu Online, Fedora Online, emulatore online Windows o emulatore online MAC OS
PROGRAMMA:
NOME
cr_checkpoint - controlla un processo, un gruppo di processi o una sessione.
SINOSSI
cr_punto di controllo [Opzioni] ID
DESCRIZIONE
L'invocazione di cr_checkpoint provoca un processo (con o senza tutti i suoi discendenti), all
processi all'interno di un gruppo di processi, o tutti i processi all'interno di una sessione, da sottoporre a checkpoint.
Il risultato è un file di checkpoint (o una directory con un file di checkpoint per processo) che
contiene tutto lo stato necessario per riavviare i processi in un secondo momento. Checkpointed
i processi possono essere riavviati tramite cr_restart(1).
Per essere controllato da cr_checkpoint, un processo deve avere il libcr.so biblioteca (o una delle
suoi parenti) caricato. Ciò può essere ottenuto avviando il programma con cr_run(1), o da
collegando la tua applicazione con -lcr. Oppure, la libreria potrebbe essere caricata da altre librerie da te
sono collegati (come una libreria MPI pronta per il checkpoint) o il lavoro parallelo del tuo sistema
script di avvio, ecc. Controlla la documentazione del tuo sistema per i dettagli.
Compila il creazione/sostituzione
Per impostazione predefinita (o se --atomico è passato) cr_checkpoint crea il nuovo file/directory di contesto
atomicamente: o il checkpoint fallisce (e qualsiasi file/directory di contesto esistente è
invariato), oppure appare nella directory pronto per essere utilizzato da cr_restart. Se un esistente
esiste un checkpoint con lo stesso nome file, non sarà modificato (se il nuovo
checkpoint fallisce per qualsiasi motivo), o sostituito atomicamente (tramite rinominare(2). Se
--backup[=NOME] viene superato, verrà eseguito il backup di qualsiasi checkpoint esistente, sia su
NOME o con un interno numerato (.~1~, .~2~, ecc., con checkpoint più recenti che hanno
numeri più alti). Se --clobber viene superato, il checkpoint rimuoverà immediatamente qualsiasi
file di checkpoint esistenti e scriverà il checkpoint direttamente nel target
file/directory: questa opzione utilizza meno spazio su disco se è presente un checkpoint esistente,
poiché il vecchio checkpoint viene immediatamente scartato, ma se il checkpoint fallisce, il pre-
il checkpoint esistente viene perso. Infine, se --noclobber è passato, quindi il checkpoint sarà
fallisce se il file/directory di destinazione esiste.
Compila il sync
Per impostazione predefinita (o quando --sincronizzazione è passato), cr_checkpoint attende finché il checkpoint è
completa in memoria, e inoltre chiama fsync(2) su tutti i file e le directory coinvolti
nel checkpoint (inclusi i file di backup) su disco prima di uscire. passando --nosync
fa sì che queste chiamate fsync vengano ignorate.
timeout
È possibile impostare un timeout massimo in secondi per un checkpoint tramite il pulsante --tempo bandiera: se il
checkpoint richiede più tempo, cr_checkpoint stamperà un messaggio di errore e uscirà con
un errore. Se si verifica un timeout, lo stato del processo o dei processi in corso
checkpoint è indefinito.
Segnali
Per impostazione predefinita, i processi con checkpoint continuano a essere eseguiti dopo il completamento di un checkpoint.
In alternativa, puoi specificare che vengano interrotti (tramite --fermare), o
terminato/interrotto/ucciso (tramite --termine, --abortire, o --uccisione). Questo viene fatto inviando il
segnale appropriato ad ogni processo che fa parte del checkpoint. Se i processi fossero
fermato nel momento in cui è stato richiesto il checkpoint, quindi --continua può essere utilizzato per inviare SIGCONT
a tutti i processi dopo il completamento del checkpoint.
Memorie mappato file
Per impostazione predefinita, i checkpoint non includono alcun file che è mmap() inserito nel processo
spazio degli indirizzi a meno che non siano già scollegati al momento dell'apertura del checkpoint. Questo
è un'ottimizzazione per risparmiare spazio/tempo partendo dal presupposto che i file richiesti lo faranno
essere ancora presente (e non corrotto) al momento del riavvio. In genere il risparmio maggiore viene
dal non salvare il file eseguibile o le librerie dinamiche (ovvero condivise). Tuttavia, opzioni
esistono per fare in modo che il checkpoint salvi anche questi file. La bandiera --salva-exe causerà
il file eseguibile da includere nel file di contesto. La bandiera --salva-privato andrete a
includere nel file di contesto tutti i file mappati con il flag MAP_PRIVATE, che
sotto Linux include le librerie eseguibili e dinamiche/condivise. La bandiera --salva-condiviso
serve per salvare i file mappati con il flag MAP_SHARED. Nota che questo è non è un , il
contrassegnare che si desidera per le librerie condivise. Al riavvio qualsiasi file salvato da questi flag sarà
mappato nel processo indipendentemente dal fatto che esista un file nella posizione originale.
Se è presente un file nella posizione originale, non viene toccato dal riavvio. Finalmente
--salva tutto e --salva-nessuno farà sì che tutti (o nessuno) di questi file mmaped opzionali siano
salvato. L'impostazione predefinita è --salva-nessuno. Quando si passano più di queste opzioni sono
elaborato da sinistra a destra con tutte le opzioni aggiuntive, ad eccezione di --salva-nessuno quale
annulla gli effetti di qualsiasi di queste opzioni che appaiono in precedenza.
Checkpoint traccia()ed i processi
Non esiste (attualmente) alcun modo per gestire in modo completamente trasparente i checkpoint dei processi che
vengono rintracciati con traccia(2). Pertanto, il comportamento predefinito (disponibile anche tramite
--ptraced-errore) è restituire un errore se uno qualsiasi dei processi da controllare è
attualmente in fase di tracciamento. Tuttavia, ci sono altri due possibili comportamenti tra cui scegliere:
--ptraced-salta
I processi tracciati verranno esclusi silenziosamente dal checkpoint. Nessun errore è
generato a meno che ciò non risulti in zero processi checkpoint.
--ptraced-allow
I processi tracciati verranno sottoposti a checkpoint proprio come qualsiasi altro processo. AVVERTIMENTO:
Poiché il processo in checkpoint e il modulo del kernel BLCR devono interagire utilizzando
segnali e chiamate di sistema, il debugger (o altro tracciante) potrebbe aver bisogno di "continuare" il
processi target, possibilmente più di una volta, per consentire il completamento del checkpoint.
Checkpoint ptrace()ing i processi
Non esiste (attualmente) alcun modo per gestire in modo completamente trasparente i checkpoint dei processi che
stanno tracciando altri processi usando traccia(2). Pertanto, il comportamento predefinito (anche
disponibile tramite --ptracer-errore) è restituire un errore se uno qualsiasi dei processi da essere
checkpointed stanno attualmente tracciando altri processi. però --ptracer-skip è disponibile
per fare in modo che cr_checkpoint escluda silenziosamente tali processi dal checkpoint. Nessun errore
viene generato in quel caso a meno che ciò non comporti un checkpoint di zero processi.
VERSIONI
Informazioni opzioni:
-v, --verboso
stampa i messaggi di avanzamento su stderr.
-q, --silenzioso
sopprimere i messaggi di errore/avviso su stderr.
-?, --Aiuto
stampa questo messaggio ed esci.
--versione
stampa le informazioni sulla versione ed esci.
Opzioni per portata of , il punto di controllo:
-T, --albero
ID identifica un ID di processo. Lui e tutti i suoi discendenti devono essere posti di blocco.
Questo è l'impostazione predefinita.
-p, --pid, --processi
ID identifica un singolo ID di processo.
-g, --pgid, --gruppo
ID identifica un ID gruppo di processi.
-s, --sid, --sessione
ID identifica un ID di sessione.
Opzioni per destinazione posizione of , il punto di controllo:
-c, --cwd
checkpoint salvato come singolo file 'context.ID' nella directory di lavoro di cr_checkpoint
(predefinito).
-d, --dir DIR
checkpoint salvato nella nuova directory DIR, con un file 'context.ID' per processo
(non implementato).
-f, --file RISORSE
checkpoint salvato come FILE.
-F, --fd FD
checkpoint scritto su un descrittore di file aperto.
Opzioni per creazione/sostituzione politica per posto di controllo File:
--atomico
checkpoint creato/sostituito atomicamente (impostazione predefinita).
--backup[=NOME]
checkpoint creato atomicamente e backup di qualsiasi checkpoint esistente su NAME o
*.~1~, *.~2~, ecc.
--clobber
checkpoint scritto in modo incrementale sul target, sovrascrivendo qualsiasi preesistente
punto di controllo.
--noclobber
il checkpoint avrà esito negativo se il file di destinazione esiste.
Queste opzioni vengono ignorate se la destinazione è un descrittore di file.
Opzioni per segnale ha inviato a processi) dopo punto di controllo:
--correre nessun segnale inviato: continua l'esecuzione (default).
-S, --segnale NUM
segnale NUM inviato a tutti i processi.
--fermare SIGSTOP inviato a tutti i processi.
--termine SIGTERM inviato a tutti i processi.
--abortire
SIGABRT inviato a tutti i processi.
--uccisione SIGKILL inviato a tutti i processi.
--continua SIGCONT inviato a tutti i processi.
Le opzioni in questo gruppo si escludono a vicenda. Se ne viene fornito più di uno, solo
l'ultimo sarà onorato.
Opzioni per filetto sistema dati (predefinito is --sincronizzazione):
--sincronizzazione fsync checkpoint file su disco (impostazione predefinita).
--nosync
non fsync file checkpoint su disco.
Opzioni a salvare opzionale porzioni of memoria:
--salva-exe
salvare il file eseguibile.
--salva-privato
salvare i file mappati privati. (gli eseguibili e le librerie sono mappati in questo modo)
--salva-condiviso
salvare i file mappati condivisi. (System V IPC è mappato in questo modo).
--salva tutto
salvare tutto quanto sopra.
--salva-nessuno
non salvare nessuno dei precedenti (l'impostazione predefinita).
Opzioni per tracciato i processi (predefinito is --ptraced-errore):
--ptraced-errore
restituisce un errore se viene richiesto un checkpoint di un processo in fase di tracciamento.
--ptraced-salta
i processi ptraced vengono esclusi silenziosamente dalla richiesta del checkpoint. Se la
l'ambito del checkpoint è --albero, allora questo escluderà anche eventuali figli di tale
processi. Non viene prodotto alcun errore a meno che ciò non comporti zero processi
posto di blocco.
--ptraced-allow
checkpoint ptraced normalmente i processi. AVVERTENZA: potrebbe essere necessario che il tracciante
"continuare" il/i processo/i target, possibilmente più di una volta.
Opzioni per i processi tracciare altri (predefinito is --ptracer-errore):
--ptracer-errore
restituisce un errore se viene richiesto un checkpoint di un processo che ne sta tracciando altri.
--ptracer-skip
i processi che tracciano altri sono esclusi silenziosamente dalla richiesta del checkpoint. Se
l'ambito del checkpoint è --albero, allora questo escluderà anche eventuali figli di tale
processi. Non viene prodotto alcun errore a meno che ciò non comporti zero processi
posto di blocco.
Opzioni per Kernel ceppo messaggi (predefinito is --kmsg-errore):
--kmsg-nessuno
non riportare alcun messaggio del kernel.
--kmsg-errore
in caso di errore del checkpoint, riportare su stderr eventuali messaggi del kernel associati al
richiesta posto di blocco.
--kmsg-avvertimento
segnalare su stderr eventuali messaggi del kernel associati alla richiesta di checkpoint,
indipendentemente dal successo o dal fallimento. I messaggi generati in assenza di guasto sono
considerati avvertimenti.
Le opzioni in questo gruppo si escludono a vicenda. Se ne viene fornito più di uno, solo
l'ultimo sarà onorato. Notare che --silenzioso sopprime tutto l'output stderr,
compresi questi messaggi.
Varie Opzioni:
-t, --tempo SEC
consenti solo SEC secondi affinché il target completi il checkpoint (predefinito: wait
indefinitamente).
ESEMPI
Per eseguire il checkpoint del processo con l'ID processo 23452, salvando il suo stato su file contesto.23452:
cr_punto di controllo -p 23452
Per eseguire il checkpoint di tutti i processi nel gruppo di processi 68473 e salvarli su file groupie:
cr_punto di controllo -g -f groupie 68473
Per eseguire il checkpoint di tutto il processo nella sessione 8362 e salvare file "context.PID" separati per
ogni processo nella directory 'my_checkpoints':
cr_punto di controllo -s -d i miei_checkpoint 8362
Usa cr_checkpoint online utilizzando i servizi onworks.net