Bash

OS X:如何在 http 連接期間保持電腦不休眠

  • November 28, 2013

我使用的應用程序從特定伺服器下載數據,我需要它在下載完成並關閉套接字後進入睡眠狀態。

但是下載是隨機發生的,下載的應用程序會檢查更新,並且只有在有更新時才會下載

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

如果您將您的 psudo 程式碼轉換為 sh,這是對您的 if 的測試

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

所以你需要一個 while 循環和 asleep 10m和 apmset 0但是因為我的 osx 盒子在儲存中,所以檢查我的 re 是個好主意。

從 Mac OS X 10.8 開始,您應該可以使用該caffeinate(8)命令。

試試caffeinate -s curl http://example.com/some/url

引用自:https://unix.stackexchange.com/questions/102802