基礎使用 ✅ 入門

Mac 一睡著 AI Agent 就斷線?用 caffeinate 讓 OpenClaw、Hermes 整夜不中斷

叫 Agent 跑一件要好幾個鐘頭的事,去泡杯咖啡回來卻發現 Mac 睡著、任務斷在一半、Telegram 也叫不動它?macOS 內建的 caffeinate 指令能讓電腦保持清醒、服務不中斷。本文把 -dimsu 五個參數逐一講清楚,附常用寫法與最容易踩的坑。

📝 建立:2026年7月10日 ✅ 最後驗證:2026年7月10日
鴨編 卡住很正常——點段落旁的 😵 卡關 讓我們知道,或直接往下滾到問答區發問。 也可以用 👍 看懂 / 😢 看不懂 告訴我們哪裡寫得好、哪裡要改。

鴨編 這篇來自一個很實際的痛:你叫 Agent 幫你跑一件要好幾個鐘頭的事,結果去泡個咖啡回來,Mac 睡著了、任務斷在一半、Telegram 也叫不動它。今天教你一個 macOS 內建、一行就搞定的解法——caffeinate。

症狀:跑到一半,Mac 睡了,Agent 也「昏」了

你可能遇過這幾種畫面:

  • OpenClawGateway 開著,讓它接 Telegram/Discord 的訊息。你人離開電腦一下,回來發現訊息根本沒收到。
  • 丟給 Hermes 一個大任務——整理一批檔案、跑一段長分析,預計一兩個鐘頭。回來一看,任務停在半路。
  • 半夜排了一個自動化流程想讓它默默跑完,早上起床發現什麼都沒發生。

這些狀況有個共同點:只要 Mac 一進入休眠,網路連線會斷、背景程式會被暫停,Agent 就等於昏了過去。

為什麼會這樣:你的電腦預設「閒著就睡」

筆電為了省電,出廠設定就是「一段時間沒人操作就自動休眠」。這對你日常用電腦是好事,但對「要一直待命或要跑很久」的 AI Agent 來說,剛好是天敵。

鴨編 鴨編的話:Agent 越來越強,我們越來越常把「要跑很久」的活交給它。可是你的筆電預設是「閒著就睡」——這兩件事天生會打架。接下來的指令,就是拿來化解這個矛盾的。

先搞懂一件事:caffeinate 是「讓它別睡」,不是「讓它去睡」

這裡先釘死一個最多人搞反的觀念:

caffeinate 的作用是「防止 Mac 進入休眠」,讓它保持清醒。 就像人喝了咖啡因會睡不著一樣——這也是它為什麼叫這個名字。

方向搞反,整件事就講不通了。我們要的是這條因果:電腦不睡 → 連線不斷 → Agent 的服務不中斷。

解法:一行指令讓 Mac 保持清醒

打開「終端機」(Terminal),輸入:

caffeinate

就這樣。只要這個指令還在跑(視窗開著、沒被你按 Ctrl + C),你的 Mac 就不會因為「閒置」而自動睡著。想讓它停止,按 Ctrl + C 或關掉那個終端機分頁即可。

不過光這樣有點笨——你得一直守著一個視窗。下面是更實用的版本。

把 -dimsu 五個參數拆開看

你可能看過 caffeinate -dimsu 這種寫法,那是把五個開關全部打開。逐一拆解:

參數作用白話
-d防止螢幕休眠螢幕一直亮著
-i防止系統閒置休眠沒操作也不會睡(最常用)
-m防止硬碟閒置休眠硬碟不轉入睡眠
-s防止系統休眠只在接電源時有效
-u宣告使用者是活躍的等於假裝你正在用電腦

幾個一定要知道的細節:

  • -s 只在接電源時才作用。 用電池時它不擋休眠,這是 Apple 的設計。
  • -u 單獨用時預設只維持 5 秒(除非搭配 -t 指定時間),比較像「戳一下讓螢幕亮起來」。
  • 大多數人用不到全部五個。背景跑 Agent,最關鍵的是 -i(防閒置休眠);想連螢幕都留著看進度,再加 -d

三種真正好用的寫法

寫法一:讓某個指令跑完,自動放行(最推薦)。 caffeinate 後面可以直接接一個指令,它會在那個指令跑完的瞬間自動結束,替你收好:

caffeinate -dimsu 你的啟動指令

任務跑多久,電腦就清醒多久;任務一結束,caffeinate 也跟著退場,Mac 又能正常休眠。不用你記得回來手動關。

寫法二:只撐一段時間。-t 指定秒數,例如撐 2 小時(7200 秒):

caffeinate -i -t 7200

寫法三:盯著一個已經在跑的程式。 如果 Agent 已經在背景跑了,用 -w 去「等」它的程序編號(PID),那支程式一結束就放行:

caffeinate -i -w $(pgrep -f openclaw)

pgrep -f openclaw 會幫你找出 OpenClaw 的 PID,-w 就一路盯著它。

🚨 常見錯誤

關掉終端機視窗=停止咖啡因。 caffeinate 是跟著那個終端機視窗活的,視窗一關、電腦一重開它就沒了。想長期在背景撐著,可以在指令最後加 & 丟到背景,或用 nohuptmux 之類的方式,讓它不隨視窗關閉而中斷。

闔上筆電蓋,多半還是會睡。 這是最多人誤會的地方。caffeinate 擋的是「閒置休眠」,但闔上上蓋觸發的睡眠是另一回事——一般情況下即使 caffeinate 在跑,蓋子一闔電腦還是會睡(除非接電源+外接螢幕等特定條件)。要長時間掛著跑,就讓螢幕開著,別闔蓋。

用電池時 -s 沒用。 前面提過,值得再講一次:要靠 -s 撐整個系統不睡,請插著電源。

它治不了「網路本身斷線」。 caffeinate 只負責讓電腦別睡。Wi-Fi 不穩、路由器重開、ISP 抽風是另一個問題,別怪到它頭上。

如何預防:先想清楚你到底需不需要 24 小時不睡

這招很方便,但別無腦全開。讓 Mac 整天整夜不睡,代價是實在的:耗電、發熱、電池折壽,機器一直空轉。給你一條 checklist:

  1. 偶爾跑長任務——用「寫法一」讓它跑完自動放行,剛剛好,別讓它一直開著。
  2. 天天都要掛著接訊息/跑排程——這時該往前想一層:是不是該把 Agent 放到一台本來就 24 小時開著的機器上?一台便宜的 VPS、一台舊電腦、甚至一台樹莓派,都比讓主力筆電硬撐更合理。
  3. 記住 caffeinate 的定位——它是「臨時讓它別睡」的工具,不是「架一個穩定常駐服務」的正解。真的要長期常駐,pmsetlaunchd,或直接跑在伺服器上,會比一行 caffeinate 更穩。

鴨編 鴨編的話:工具選對場合最重要。caffeinate 是你今晚就能用、解「跑一段長任務別讓它斷」的最快解法——這件事它做得漂亮。但如果你的需求慢慢變成「我要一個永遠在線的 Agent」,那就不是喝咖啡撐夜的問題,而是該幫它找張真正的床(一台常開的機器)了。下次丟長任務給 OpenClaw 或 Hermes,就用 caffeinate -dimsu 你的啟動指令 把它包起來,然後安心去泡咖啡。

這篇文章對你有幫助嗎?

💬 問答區

卡關了?直接在這裡問,其他讀者和作者都能幫忙解答。

載入中...

覺得有用?分享給也在弄髒雙手的朋友

分享到 LINE