Существует ли способ препятствовать тому, чтобы Windows вошел в режим ожидания при запущении программы на командной строке или с cygwin? Идеально, я надеюсь на что-то, что могло использоваться как:
nosleep myscript.sh
Фон
Иногда я запускаю продолжительные задания как ручные резервные или большие передачи файлов, и я нашел, что Windows часто засыпает, прежде чем они заканчиваются. Я хотел бы смочь запустить команду и предотвратить режим ожидания, в то время как команда работает, но имейте его, автоматически работают снова, после того как команда завершилась.
Можно использовать powercfg
в сценарии для изменения времени ожидает ПК, пока он не засыпает:
Никогда не переходите к резервному устройству:
powercfg -change -standby-timeout-ac 0
Перейдите к резервному устройству через 15 минут:
powercfg -change -standby-timeout-ac 15
Вот сценарий удара, который я сделал на скорую руку на основе ответа harrymc.
#!/usr/bin/bash
# NAME
# nosleep - prevent sleep and hibernation while running a command
#
# SYNOPSIS
# nosleep COMMAND [ARG]...
# Make sure the power scheme gets restored, even if Ctrl-C happens
cleanup()
{
powercfg -setactive $SCHEME_GUID
powercfg -delete $TMP_GUID
return $?
}
trap cleanup SIGINT
# Disable sleep and hibernate timers
export SCHEME_GUID=`powercfg -getactivescheme | gawk '{ print $4 }'`
export TMP_GUID=`powercfg -duplicatescheme $SCHEME_GUID | gawk '{ print $4 }'`
if [[ -z $TMP_GUID ]]; then
echo "ERROR: could not duplicate the current power scheme"
exit 254
fi
powercfg -setactive $TMP_GUID
powercfg -changename $TMP_GUID nosleep "temporary scheme for disabling sleep and hibernation"
powercfg -change -standby-timeout-ac 0
powercfg -change -hibernate-timeout-ac 0
# Run the command
"$@"
powercfg -setactive $SCHEME_GUID
powercfg -delete $TMP_GUID
Бессонница предотвращает Ваши окна для засыпания, но это не командная строка инструменты, таким образом, сценарий с командами harrymc является лучшими решениями