Existe uma maneira de impedir que o Windows entre no modo de suspensão enquanto executa um programa na linha de comando ou com o cygwin? Idealmente, espero algo que possa ser usado como:
nosleep myscript.sh
fundo
Às vezes, inicio trabalhos de longa execução, como backup manual ou grandes transferências de arquivos, e descobri que o Windows geralmente entra em suspensão antes que eles terminem. Gostaria de poder iniciar o comando e impedir o modo de suspensão enquanto o comando estiver em execução, mas fazê-lo funcionar automaticamente novamente assim que o comando for concluído.
windows-7
command-line
sleep
cygwin
Mr Fooz
fonte
fonte
Aqui está um script bash que eu criei com base na resposta do harrymc.
fonte
"$*"
para$*
. Caso contrário, obtive o seguinte ao apresentar mais de um argumento (por exemplo$nosleep sleep 1
:/usr/bin/nosleep: line 31: sleep 1 command not found
"$@"
."$*"
está errado porque concatena todos os argumentos, enquanto$*
está errado, pois divide os argumentos$IFS
e remove os vazios.Loop { SoundPlay, %A_WinDir%\Media\ding.wav }
, semwait
argumento.Agora existe um
nosleep
comando desse tipo em Cygwin. Basta instalar onosleep
pacote e executar comoEscrito por Andrew E. Schulman em 2011. Consulte https://cygwin.com/ml/cygwin/2011-09/msg00151.html
A fonte no Launchpad . Ele usa
SetThreadExecutionState()
(como Insomnia já mencionado), não cria um esquema de energia separado.Observe que ele impede que o sistema entre automaticamente no modo ocioso, e não no sistema, se solicitado por um usuário (como ao fechar a tampa do laptop).
fonte
Sugestão desta resposta por @LorenzCK em uma pergunta relacionada:
Use o Modo de apresentação no Windows Mobility Center (se disponível)
%WINDIR%\System32\PresentationSettings.exe "/start"
Verifique com
powercfg -requests
no prompt de comando. Saída deve:De cabeça para baixo, ele é limpo ao desligar ou reiniciar. Agora você não precisa se preocupar em armazenar e restaurar as configurações de energia originais 👍
Isso também impede que os monitores entrem no modo de espera, mas você pode fazer isso acontecer com um comando no seu script. Soluções simples, mas de terceiros: NirCmd
nircmd monitor off
ou AutoHotkeySendMessage, 0x112, 0xF170, 2,, Program Manager
O built-inpowercfg /requestsoverride process PresentationSettings.exe display
não funcionará.fonte
A insônia impede que o Windows durma, mas não é uma ferramenta de linha de comando; portanto, seu script com os comandos harrymc é uma solução melhor
fonte