O programa Python começa a ser executado novamente depois que o pc é ativado?

15

Estou executando um programa python que leva algumas horas para ser concluído. Se eu fechar a tampa do meu laptop (ou seja, colocá-lo para dormir), o programa iniciará novamente quando eu reabrir meu laptop? Já faz algumas horas e eu tenho que sair em breve (então eu preciso fechar meu laptop), mas eu não quero começar o processo novamente. O programa começará do mesmo ponto exato? Qual é o comportamento padrão no Ubuntu 16.04?

Fyi, estou executando uma validação cruzada para um classificador que não usa recursos de rede - apenas CPU e RAM.

    
por BourbonCreams 27.01.2017 / 11:03

4 respostas

29

A resposta simples é sim , mas a verdade é um pouco mais complicada.

Sim, o aplicativo ainda estará em execução; ele será retomado com o restante dos processos do sistema. Há, no entanto, coisas com estado, como conexões de rede e estados do driver de gráficos. Estes precisam reinicializar com hardware externo e isso pode significar alguma latência de rede adicional para começar, ou mesmo uma reconexão de desconexão adequada (como acontece comigo na Ethernet). Em situações particularmente ruins - exceções definidas à regra - todo o ambiente de área de trabalho pode travar e reiniciar.

Então não posso garantir o que vai acontecer com você. Se o seu aplicativo falhar, se perder a conectividade da rede, pode haver um problema. Se estiver fazendo renderização ou coisas de CUDA / OpenCL, isso pode quebrar.

Se é apenas um material simples de CPU / disco, deve estar bem.
Mas quem sabe com certeza. Computadores fazem de tolos todos nós.
Boa sorte.

    
por Oli 27.01.2017 / 11:11
6

Quando você suspende o sistema (coloque-o em repouso), ele armazena todos os registros da CPU, etc., que representam o que está fazendo atualmente na sua RAM e, em seguida, desativa a maioria dos componentes, exceto aqueles que preservam o conteúdo da RAM e os necessários Acordar o computador novamente mais tarde (dispositivos de entrada, etc.).

Quando você acorda mais tarde, o estado anterior é restaurado e o computador continua exatamente no ponto em que você o suspendeu.

Esse é o conceito principal, claro que na realidade acontece mais porque tudo isso não acontece magicamente quando você corta os dedos. Existem muitos scripts de sistema envolvidos que são executados antes de serem suspensos e depois de serem ativados.

No entanto, a menos que você configure manualmente algo para fazer isso, a suspensão do computador nunca fechará nenhum aplicativo em execução. Existe um pequeno risco de que algo falhe no processo, mas normalmente, se funcionou uma vez, funciona sempre.

    
por Byte Commander 27.01.2017 / 11:12
2

Se o laptop vai para dormir (= suspender), definitivamente sim. A única coisa que pode ser interrompida são conexões de rede ou coisa similar em tempo real; nesse caso, isso depende se o programa em execução for gravado com segurança para aceitar falhas temporárias e recuperar.

Se o laptop desligar , definitivamente não --- há uma opção em algum lugar no Painel de Controle para decidir entre os dois comportamentos, eu acho.

    
por Rmano 27.01.2017 / 11:11
2

Se quiser ter certeza, você pode selecionar o seu computador para não fazer nada extra quando a tampa estiver fechada, a partir das opções de energia no painel de controle. Isso significa que fechar ou abrir a tampa não afetará o estado do seu computador. Dessa forma, é garantido que qualquer programa será executado ininterruptamente.

    
por atayenel 27.01.2017 / 23:15