кофеїн не може утримати показ сну


5

У мене є флот із 7 MacBook Pro, який працює під Mac Mac OS 10.10, 10.11 та 10.12, і 3 mac pro працює Mac os 10.13 ("висока сиєрра"). У всіх системах я встановив, що ніколи не спить систему чи дисплей. Як не дивно, цього недостатньо, тому я також використовую кофеїн для запобігання сну. У системах 10.13, проте, дисплей все ще переходить у режим сну, незалежно від того, що я намагаюся. Це впливає на дві речі:

  • мої тести на opengl висять
  • "osascript -e" скажіть додатку "Події системи", щоб перезапустити "" висить

Оскільки лише дисплей спить, я все ще можу зайти і озирнутися.

В даний час я запускаю свій сценарій під кофеїном -dsiu -t 31536000, і коли він зависає, очевидно, я все ще маю на увазі всі належні твердження:

$ pmset -g assertionslog
2017-11-20 19:34:27 -0800 : Showing all currently held IOKit power assertions
Assertion status system-wide:
BackgroundTask 0
ApplePushServiceTask 0
UserIsActive 1
PreventUserIdleDisplaySleep 1
PreventSystemSleep 1
ExternalMedia 0
PreventUserIdleSystemSleep 1
NetworkClientActive 1

і все ж дисплей знаходиться в DevicePowerState 1:

$ ioreg -n IODisplayWrangler | grep -i IOPowerManagement
| | "IOPowerManagement" = {"DevicePowerState"=1,"CapabilityFlags"=0,"CurrentPowerState"=1,"MaxPowerState"=4}

Виконання іншого кофеїну -у пробуджує дисплей і поміщає його в DevicePowerState 4 протягом 15 секунд, потім він повертається до сну і DevicePowerState 1, навіть якщо я даю більш тривалий час з -t. Я також намагався повторити аргумент -t після кожного твердження (на випадок, коли це заплуталася сторінка).

Щоб врятувати "osascript -e", сказати додатку "Системні події", щоб перезапустити ", я повинен видати" caffeinate -u ". "кофеїн -d" або "кофеїнат -i" недостатній.

Дивіться мої коментарі на https://github.com/newmarcel/KeepingYouAwake/isissue/92 для отримання більш детальної інформації.

Я думаю, що я повинен використовувати lldb, щоб отримати зворотній зв'язок від вивішеного тесту opengl, з'ясувати, на якому API він завішений, а потім створити мінімальну програму, яка встановлює відповідне твердження про управління потужністю, трохи спить, а потім викликає API висячого. Я спробую це зробити, коли отримаю можливість.

Щоб обійти це, у мене зараз це є у фоновому сценарії:

while true
do
   caffeinate -ud sleep 10
done

але цього недостатньо; CurrentPowerState часто опускається до 1 у всіх системах (хоча, я думаю, лише 10,13 системи насправді сплять дисплей і вивішують мої тести).

Хтось ще наткнувся на це? Будь-які пропозиції, як я можу далі діагностувати це?


Чи обмірковували ви пробувати стороннє додаток, наприклад, кофеїн або амфетамін для машин 10.13?
jmh

1
Пропозиція другого @ jmh, але також додайте "Anti Sleep" (є Z у колі, я вважаю), який, здається, працює 10.13, хоча я не звертав уваги на замикання екрана, оскільки я був стурбований лише тим, що процесор не став " t сплять (читайте: віддалений робочий стіл з іншого місця). Але одне питання в іншому випадку: якщо ви хочете, щоб усі ці машини підтримували роботу своїх дисплеїв, чи встановили ви налаштування системи -> Power -> Timeout Sleep Screen на "ніколи"? Якщо це помилка в macOS, що тайм-аут перекриває налаштовані кофікованими налаштуваннями, то, принаймні, це обійде це зараз?
bjb

1
Я просто використовую кофеїн Apple, тому що його повинно вистачити, і мені подобається уникати сторонніх програм gui. І так, я налаштував Системні налаштування, щоб ніколи не спати і не вимикати дисплей.
Дан Кегель
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.