내가 사용하고 있는 애플리케이션은 특정 서버에서 데이터를 다운로드하며, 다운로드가 완료되고 소켓이 닫힌 후에는 절전 모드로 들어가야 합니다.
그러나 다운로드는 무작위로 발생하며 다운로드한 앱은 업데이트를 확인하고 사용 가능한 업데이트만 다운로드합니다.
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 세션 중에 컴퓨터가 절전 모드로 전환되는 것을 방지하는 방법이 있습니까?
이제 의사 스크립트를 양해해 주시기 바랍니다. 하지만 이것이 제가 시도할 수 있는 최선입니다.
netstat -anp tcp
IF Foreign Address = 8.8.8.8 & state = ESTABLISHED
then
WAIT AND CHECK IN 10 MINUTES
else
pmset sleepnow
fi
답변1
Mac OS X 10.8부터 다음을 사용할 수 있습니다.caffeinate(8)
주문하다.
노력하다 caffeinate -s curl http://example.com/some/url
.
답변2
의사코드를 sh로 변환하는 경우 다음은 if에 대한 테스트입니다.
netstat -anp|grep EST|sed 's/^..p6\? \+[^ ]\+ \+[^ ]\+ \+[^ ]\+ \+\([^ ]\+\) \+.*$/\1/'|grep -q 8.8.8.8 && echo connected
sleep 10m
따라서 while 루프와 a 및 a가 필요 pmset 0
하지만 내 osx 상자가 저장되어 있으므로 내 re.a를 확인하는 것이 좋습니다.