Bash
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 會話時休眠?
現在請原諒我的偽腳本,但這是我可以嘗試的最好方法
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 循環和 a
sleep 10m
和 apmset 0
但是因為我的 osx 盒子在儲存中,所以檢查我的 re 是個好主意。
從 Mac OS X 10.8 開始,您應該可以使用該
caffeinate(8)
命令。試試
caffeinate -s curl http://example.com/some/url
。