Czy istnieje sposób, aby zapobiec przejściu systemu Windows w tryb uśpienia podczas uruchamiania programu w wierszu polecenia lub w programie cygwin? Idealnie, mam nadzieję na coś, co mogłoby być użyte, jak:
nosleep myscript.sh
tło
Czasami uruchamiam długotrwałe zadania, takie jak ręczne tworzenie kopii zapasowych lub przesyłanie dużych plików, i zauważyłem, że system Windows często przechodzi w tryb uśpienia przed ich zakończeniem. Chciałbym móc uruchomić polecenie i zapobiec trybowi uśpienia, gdy polecenie jest uruchomione, ale pozwól mu automatycznie działać ponownie po zakończeniu polecenia.
źródło
Oto skrypt bash, który opracowałem na podstawie odpowiedzi Harrymca.
źródło
"$*"
do$*
. W przeciwnym razie dostałem następujące, gdy$nosleep sleep 1
/usr/bin/nosleep: line 31: sleep 1 command not found
"$@"
."$*"
jest błędna, ponieważ łączy wszystkie argumenty, podczas gdy$*
jest błędna, ponieważ dzieli argumenty$IFS
i usuwa puste.Loop { SoundPlay, %A_WinDir%\Media\ding.wav }
, bezwait
argumentów.W
nosleep
Cygwin jest teraz takie polecenie. Wystarczy zainstalowaćnosleep
pakiet i uruchomić jakoNapisane przez Andrew E. Schulmana w 2011 roku. Patrz https://cygwin.com/ml/cygwin/2011-09/msg00151.html
Źródło na Launchpad . Wykorzystuje
SetThreadExecutionState()
(jak wspomniano już bezsenność), nie tworzy osobnego schematu zasilania.Pamiętaj, że zapobiega to automatycznemu przejściu systemu w stan bezczynności, a nie przejściu w tryb uśpienia na żądanie użytkownika (na przykład podczas zamykania pokrywy laptopa).
źródło
Sugestia tej odpowiedzi @LorenzCK na powiązane pytanie:
Użyj trybu prezentacji z Windows Mobility Center (jeśli jest dostępny)
%WINDIR%\System32\PresentationSettings.exe "/start"
Sprawdź za pomocą
powercfg -requests
w wierszu polecenia. Powinien generować:Zaletą jest to, że jest usuwane po wyłączeniu lub ponownym uruchomieniu. Teraz nie musisz się martwić o przechowywanie i przywracanie oryginalnych ustawień zasilania 👍
Zapobiega również zasypianiu monitorów, ale możesz to zrobić za pomocą polecenia w skrypcie. Proste, ale rozwiązania innych firm: NirCmd
nircmd monitor off
lub AutoHotkeySendMessage, 0x112, 0xF170, 2,, Program Manager
Wbudowanepowercfg /requestsoverride process PresentationSettings.exe display
nie będzie jednak działać.źródło
Bezsenność zapobiega zasypianiu systemu Windows, ale nie jest to narzędzie wiersza polecenia, więc skrypt z poleceniami harrymc jest lepszym rozwiązaniem
źródło