OS X: как удержать компьютер от сна во время http-соединения

Приложение, которое я использую, загружает данные с определенного сервера, и мне нужно, чтобы он спал после завершения загрузки и закрытия сокета.

Однако закачки проходят в случайные дни, приложение, которое загружает проверки на наличие обновлений и только загружает, если есть один

Proto Recv-Q Send-Q Local Address Foreign Address (state) tcp4 0 0 192.168.1.29.51005 8.8.8.8.80 ESTABLISHED 

Представление 8.8.8.8 – это сервер, на котором загружаются данные.

Есть ли способ предотвратить спящий компьютер, пока есть сеанс HTTP для определенного сервера?

Теперь, пожалуйста, извините мой скрипт pseduo, но это лучший способ попробовать

 netstat -anp tcp IF Foreign Address = 8.8.8.8 & state = ESTABLISHED then WAIT AND CHECK IN 10 MINUTES else pmset sleepnow fi 

если вы конвертируете свой psudo-код в sh, вот тест для вашего if

 netstat -anp|grep EST|sed 's/^..p6\? \+[^ ]\+ \+[^ ]\+ \+[^ ]\+ \+\([^ ]\+\) \+.*$/\1/'|grep -q 8.8.8.8 && echo connected 

поэтому вам нужен цикл while и sleep 10m и pmset 0 но поскольку мой ящик osx находится в хранилище, было бы неплохо проверить мой re.

Начиная с Mac OS X 10.8, вы должны использовать команду caffeinate(8) .

Попробуйте caffeinate -s curl http://example.com/some/url .