技術筆記

用 Claude Code 寫篜馏程式:從規格到可長跑的行程

JinLau · 2026-04

你使用的用語「篜馏」(先前亦見「篜留」寫法)在本文裡,都指同一類程式:在背景長時間執行、不會因為你關掉終端機就自動收掉的那種——Linux 的 daemon、Windows 的服務、常駐 worker、帶事件迴圈的長行程,都屬這個家族。為讀起來順,文中有時也寫成大家更熟的駐留/常駐,語意相同。

Claude Code(Anthropic 的終端編程助理)適合在「你已經有目錄結構、想快速反覆改檔、跑測試、看錯誤」的迴圈裡當共駕。下面是一篇可照做的流程與口令思路,不是官方文件;實際指令請以你安裝的版本為準。

一、先講清楚:篜馏程式要滿足什麼

在叫模型幫你寫之前,先用三句話寫在 README 或 issue 裡,之後每一輪對話都省時間:

  • 平台:例如 Linux x64、Windows Server、單板電腦、還是純本機開發用。
  • 觸發與結束:開機自啟?手動啟?收到 SIGTERM / Ctrl+C 要不要優雅關閉?
  • 對外介面:只寫 log?要 HTTP?要讀寫佇列?要不要設定檔?

篜馏程式最容易踩雷的不是「語法」,而是生命週期:沒處理訊號、沒 flush log、沒釋放檔案鎖,看起來能跑,上線三天就歪掉。

二、用 Claude Code 的推薦節奏

  1. 骨架先行:請它建立專案目錄、依賴檔(package.json / pyproject.toml / go.mod)、以及一個最小的 main,裡面只有「印一行 + sleep 迴圈」,確認你真的能長跑。
  2. 加上「優雅關閉」:同一輪或下一輪,要求補上訊號處理、timeout、以及「關閉時把進行中的工作做完或寫 checkpoint」。
  3. 可觀測性:結構化日誌(JSON 一行一筆)、health 端點或簡單的檔案心跳,讓你將來掛 systemd / NSSM / Docker 時有東西可查。
  4. 部署故事:請它寫 systemd unit、Dockerfile、或 Windows 服務安裝步驟——模型很會產生範本,但路徑與使用者權限一定要你人工核對

三、可以貼進對話的「口令」範本(請改成你的專案名)

這類提示的重點是限制範圍,避免它一次改十個檔還混進假 API:

我在 ./worker 要做一個 Node 篜馏程式(常駐 worker):
- 每 30 秒從環境變數讀 API_URL 拉一次資料,失敗要指數退避,最多等 5 分鐘。
- 收到 SIGINT/SIGTERM 時:停止排程、把當前 batch 寫完、flush log,然後 exit 0。
- 日誌用 pino,輸出到 stdout;不要寫死密鑰。
請只新增或修改 worker/ 底下檔案,並給我 npm scripts:dev / start。

四、你仍然必須親自檢查的四件事

  • SECRET:API key、資料庫 URL 不要進 repo;用環境變數或祕鑰管理。
  • 重啟策略Restart=always 會掩蓋 bug,記得設 StartLimitInterval 或上限,避免打爆上游。
  • 時區與時間:排程用 UTC 還是本地?夏令時間會不會讓「每天三點」歪掉?
  • 資源上限:記憶體、檔案描述符、子行程——長跑程式遲早會碰到,請它幫你加簡單的 metrics 或週期性 self-check。
免責與邊界:Claude Code 再強也是「依你給的上下文推論」;它不替你承擔上線責任。篜馏程式上線前,請在與正式環境相同權限的機器上跑壓力測與關機測試。

五、結語

把篜馏程式想成「會一直醒著的程序」:你要的是可預測的睡眠、可預測的醒來、可預測的死亡。Claude Code 適合加速你把這三件事寫進程式碼;最後一道門永遠是你自己的 code review 與 on-call 常識。