Processo Python suspenso apesar de executar cafeína


3

ATUALIZAÇÃO : desde a atualização para o macOS 10.14, esse problema não está mais ocorrendo para mim.

Eu tenho um processo Python de longa execução (usando multiprocessamento), executado no Terminal e regularmente volto a ele, percebendo que ele foi suspenso por várias horas enquanto eu estava longe do Mac. No momento em que volto a ele, ele está funcionando novamente na velocidade normal (está exibindo uma barra de progresso no Terminal). Isto apesar:

  • marcando "impedir que o computador entre no modo de suspensão automaticamente quando a tela estiver desligada" no painel de preferências Economia de energia
  • em execução a caffeinatepartir do processo pai ( Popen('caffeinate')), que aparece na seção Energia do Activity Monitor
  • Usando appnope para iniciar uma atividade com NSActivityUserInitiated | NSActivityLatencyCritical

Isso acontece em vários computadores, mas só começou a acontecer recentemente, ou seja, acho que não ocorreu antes das 10.13.

Por que isso pode estar ocorrendo e que outros meios existem para investigá-lo ou evitá-lo?


1
Não tenho certeza do que está errado, apesar de executar o caffeinatecomando. Instalar e executar um aplicativo dedicado que impede o Mac de dormir faz o truque para mim. Você pode experimentar o aplicativo KeepingYouAwake Menu Bar ( github.com/newmarcel/KeepingYouAwake ) e verificar se isso resolve o seu problema.
Nimesh Neema

2
Acho que o computador não está funcionando. Suspeito que seja o App Nap. Estou tentando se appnopeajuda.
1911 christianbrodbeck

1
Você já teve alguma sorte com appnope?
jmh

1
Eu não sei até que eu deixe o computador sozinho por um tempo :), vou relatar de volta
christianbrodbeck

1
Eu suspeito que o motivo foi que designei meus processos como daemon. Desde que removi essa designação, não vi o problema.
22418 Christian
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.