Computador acordado por wake-on-lan adormece cerca de 100 segundos depois

1

Eu tenho um computador (Dell Optiplex 170L, Windows XP) no qual estou testando as funções wake-on-lan. Eu tenho um script que acorda com o programa linux wakeonlan com sucesso e, em seguida, executa um ping. No entanto, pouco mais de 100 segundos após o despertar, ele adormece novamente, interrompendo ou impedindo o que eu queria acordá-lo.

    
por Justin Love 25.02.2010 / 17:02

2 respostas

1

Eu notei o mesmo comportamento com um laptop Windows7. Parece que se um laptop é ativado usando WoL, o Windows o trata de maneira diferente. Se não houver entrada para a máquina dentro de 2 minutos, o Windows a colocará novamente em suspensão.

A solução é informar ao Windows imediatamente após acordar a máquina que ela não deve fazer a transição da máquina para um estado de baixa energia.

SetThreadExecutionState é a função que você precisa chamar para evitar Windows de transição para o modo de baixa potência. Dependendo das bandeiras que você chama, o efeito varia.

Você basicamente precisa ligar

SetThreadExecutionState(ES_CONTINUOUS | ES_SYSTEM_REQUIRED);

quando o Windows é iniciado e, em seguida, chama

SetThreadExecutionState(ES_CONTINUOUS);

uma vez que seu trabalho esteja concluído.

ES_SYSTEM_REQUIRED indica ao Windows que o sistema precisa estar ativo. ES_CONTINUOUS diz que o estado em que a máquina foi configurada, ou seja, sempre permanece acordado, precisa permanecer até que seja alterado, chamando a mesma função com um parâmetro diff. Uma vez que seu trabalho esteja concluído, você faz a segunda chamada. Isso é chamado apenas com o ES_CONTINUOUS. Ao não especificar ES_SYSTEM_REQUIRED, você está redefinindo o estado para o padrão, ou seja, permite que o Windows gerencie o estado de energia. E por causa do ES_CONTINUOUS, ele permanecerá nesse estado até que seja alterado de outra forma.

Btw, fazer a primeira chamada apenas impedirá que o Windows gerencie energia. Se você tiver qualquer outro software que gerencie energia, ele ainda fará a transição da máquina.

Eu sei, essa resposta vem depois de muitos meses da pergunta original, mas estou postando na esperança de que ajude o próximo cara que aparecer.

    
por 06.07.2010 / 00:20
0

Eu encontrei este site que tem um software chamado StayAwake que evita esse comportamento de adormecer com base na inatividade após o WOL. Infelizmente, isso impede que o computador adormeça completamente, substituindo as opções de energia. No entanto, eu consegui agendar uma tarefa que informa explicitamente o computador para dormir na hora durante o dia, e Wake-On-Lan ainda vai acordar da mesma forma, pelo menos teoricamente. Ainda tenho alguns problemas com o WOL, como você verá nas perguntas que fiz, mas pode ser relacionado a hardware.

    
por 16.11.2010 / 22:59