Il programma Python si riavvia dopo che il pc si è riavviato?

15

Sto facendo funzionare un programma python che richiede alcune ore per essere completato. Se chiudo il coperchio del mio laptop (cioè lo metto in modalità sleep), il programma ricomincerà quando riaprirò il mio laptop? Sono già passate alcune ore e devo partire presto (quindi ho bisogno di chiudere il mio portatile) ma non voglio ricominciare il processo. Il programma partirà dallo stesso identico punto? Qual è il comportamento predefinito in Ubuntu 16.04?

Fyi, sto eseguendo una convalida incrociata per un classificatore che non utilizza alcuna risorsa di rete, solo CPU e RAM.

    
posta BourbonCreams 27.01.2017 - 11:03

4 risposte

29

La risposta semplice è ma la verità è un po 'più complicata.

Sì, l'applicazione sarà ancora in esecuzione; riprenderà con il resto dei processi del sistema. Ci sono, tuttavia, cose di stato come le connessioni di rete e gli stati dei driver grafici. Questi hanno bisogno di reinizializzarsi con hardware esterno e questo potrebbe significare qualche latenza di rete aggiunta per cominciare, o anche una corretta disconnessione-riconnessione (come succede a me su Ethernet). In situazioni particolarmente brutte, eccezionalmente alla regola, l'intero ambiente desktop può bloccarsi e riavviarsi.

Quindi non posso garantire che cosa ti succederà. Se la tua applicazione si arresta in modo anomalo se perde la connettività di rete, potrebbe esserci un problema. Se sta facendo rendering o roba CUDA / OpenCL, potrebbe rompersi.

Se è solo una semplice CPU / disco, dovrebbe andare bene.
Ma chi lo sa per certo. I computer ci rendono pazzi di tutti noi.
Buona fortuna.

    
risposta data Oli 27.01.2017 - 11:11
6

Quando sospendi il sistema (mettilo in stop), memorizza tutti i suoi registri CPU ecc. che rappresentano ciò che sta facendo attualmente nella tua RAM e quindi spegne la maggior parte dei componenti tranne quelli che conservano il contenuto della RAM e quelli necessari per riattivare il computer più tardi (dispositivi di input, ecc.)

Quando lo riattivi più tardi, lo stato precedente viene ripristinato e il computer continua esattamente nel punto in cui l'hai sospeso.

Questo è il concetto principale, ovviamente nella realtà succede di più perché tutto questo non accade magicamente quando si tagliano le dita. Ci sono molti script di sistema coinvolti che vengono eseguiti prima della sospensione e dopo il risveglio.

Tuttavia, a meno che non si imposti manualmente qualcosa per farlo, la sospensione del computer non chiuderà mai le applicazioni in esecuzione. C'è un piccolo rischio che qualcosa si blocchi durante il processo, ma normalmente se ha funzionato una volta, funziona sempre.

    
risposta data Byte Commander 27.01.2017 - 11:12
2

Se il laptop va in sleep (= suspend), sicuramente si. L'unica cosa che può essere interrotta sono le connessioni di rete o qualcosa di simile, in tempo reale; in tal caso, dipende se il programma in esecuzione viene scritto in modo sicuro per accettare guasti temporanei e ripristinarli.

Se il laptop si spegne , sicuramente no --- c'è un'opzione da qualche parte nel Pannello di controllo per decidere tra i due comportamenti, credo.

    
risposta data Rmano 27.01.2017 - 11:11
2

Se vuoi essere sicuro, puoi selezionare il tuo computer per non fare nulla in più quando il coperchio è chiuso, dalle opzioni di alimentazione nel pannello di controllo. Ciò significa che chiudere o aprire il coperchio non avrà alcun effetto sullo stato del tuo computer. In questo modo è garantito che qualsiasi programma verrà eseguito senza interruzioni.

    
risposta data atayenel 27.01.2017 - 23:15

Leggi altre domande sui tag