Codex CLI เปิด daemon เบื้องหลังที่อัปเดตตัวเองเป็นค่าเริ่มต้นตั้งแต่ 0.157.0 — issue ขึ้นหน้าแรก HN, daemon จำ env ของ session แรก และวิธีปิดยังไม่มีในเอกสาร config
Codex CLI ของ OpenAI เปลี่ยนพฤติกรรมพื้นฐานตั้งแต่เวอร์ชัน 0.157.0 ที่ออกเมื่อวันที่ 25 ก.ย. 2026 release note เขียนถึงเรื่องนี้ไว้ประโยคเดียวว่า “Enabled automatic background-server startup for eligible interactive sessions” แต่ผลจริงคือทุกครั้งที่เปิด codex แบบ interactive จะมี daemon เบื้องหลัง ที่รันค้างอยู่แม้ปิดทุกหน้าต่างแล้ว และอัปเดตตัวเองได้ด้วย
เรื่องนี้ไม่ใช่ของใหม่ (เป็นข่าว catch-up ของ release เมื่อ 18 วันก่อน) แต่กลับมาเป็นประเด็นเมื่อ issue #48195 ที่ขอให้ฟีเจอร์นี้เป็น opt-in ขึ้น หน้าแรก Hacker News เมื่อวันที่ 12 ต.ค. ได้กว่า 400 คะแนน ถึงวันนี้ issue ยังเปิดอยู่ มี 👍 109 ครั้ง และใน 15 ความเห็นยังไม่มีคำตอบจากทีม OpenAI
daemon ทำอะไรบ้าง
ผู้เปิด issue ใช้ Codex CLI 0.157.0 ติดตั้งผ่าน npm บน Linux (WSL2) และบันทึกพฤติกรรมไว้ดังนี้
- สตาร์ต daemon ถาวร (
codex app-server --managed-daemon) ซึ่งไม่ผูกกับ TTY เมื่อปิด Codex ทุกหน้าต่างแล้ว process นี้จะถูกย้ายไปเป็นลูกของ PID 1 และรันต่อจนกว่าจะสั่งcodex app-server daemon stopหรือรีบูต - คัดลอกแพ็กเกจทั้งชุดราว 374MB (
codex,codex-code-mode-host,bwrap,zsh,rg) ไปไว้ใน~/.codex/packages/app-server-daemon/releases/<version>/แล้วรัน daemon จากสำเนานี้ เวอร์ชันของ backend จึงไม่ผูกกับเวอร์ชันที่ติดตั้งผ่าน package manager อีกต่อไป - สตาร์ต updater แยก (
pid-update-loop) ที่เช็กอัปเดต 5 นาทีหลังเริ่ม และทุกชั่วโมงหลังจากนั้น ดาวน์โหลดเวอร์ชันใหม่แล้วรีสตาร์ต backend ซึ่งอาจตัดงานที่กำลังรันอยู่ - จำ environment ของ session แรก เช่น
HTTPS_PROXYแล้วใช้ค่านั้นกับทุก session ที่ตามมา ผู้ใช้อีกรายยืนยันในความเห็นวันที่ 12 ต.ค. ว่าตัวแปรจาก direnv/.envrcของไดเรกทอรีแรก ติดไปถึงโปรเจกต์อื่น ด้วย ซึ่งอันตรายเมื่อใช้ชื่อตัวแปรซ้ำกันอย่างGH_TOKEN
นอกจากนี้ยังมีบั๊กตอนปิดเอง คือ codex app-server daemon stop หยุด app-server แต่ไม่หยุดตัว updater ต้อง kill ตามเอง และมี issue อื่นรายงานว่า 0.157.0 เปิดไม่ได้บน Windows เพราะข้อผิดพลาดเรื่องสิทธิ์ของ daemon และใช้กับแพ็กเกจของ Arch Linux ไม่ได้ ถ้าไม่ใส่ --no-daemon
สถานะตอนนี้ และวิธีปิด
เราตรวจโค้ดบน branch main ของ openai/codex เมื่อเช้าวันนี้ ไฟล์ codex-rs/features/src/lib.rs ยังกำหนด daemon_auto_start เป็น Stage::Stable และ default_enabled: true ส่วนหน้า Configuration Reference อย่างเป็นทางการบน developers.openai.com ไม่มีคำว่า “daemon” อยู่เลย ทั้งที่มีเอกสารของ check_for_update_on_startup ครบ
วิธีปิดที่ผู้เปิด issue ใช้ (และผู้ใช้ Windows ยืนยันว่าใช้ได้ผ่าน daemon_auto_start = false ใน config.toml):
codex features disable daemon_auto_start
codex app-server daemon stop
pkill -f 'app-server daemon pid-update-loop' # daemon stop ไม่หยุดตัวนี้
rm -rf ~/.codex/packages/app-server-daemon
ถ้ารัน Codex ใน CI หรือบนเครื่องที่ต้องการ build ที่ทำซ้ำได้ ควรตั้งค่านี้ไว้ใน config.toml ตั้งแต่ตอน provision เครื่อง
มุมมอง AI Curator
daemon ที่แชร์กันระหว่าง session มีเหตุผลทางวิศวกรรมจริง เพราะ Remote Control และแอปเดสก์ท็อปต้องมี backend ที่รันค้างไว้ ปัญหาไม่ได้อยู่ที่ตัวฟีเจอร์ แต่อยู่ที่ ค่าเริ่มต้นและการสื่อสาร CLI ที่ติดตั้งผ่าน npm ควรรันไบนารีที่ผู้ใช้ติดตั้งเอง และจบการทำงานเมื่อปิดหน้าต่าง เมื่อเครื่องมือที่ได้สิทธิ์อ่านเขียนไฟล์ทั้งเครื่องเริ่มดาวน์โหลดและรันโค้ดใหม่เองทุกชั่วโมงนอก package manager สิ่งที่ผู้ใช้ติดตั้งกับสิ่งที่รันจริงก็ไม่ใช่ตัวเดียวกันอีกต่อไป ซึ่งขัดกับหลัก supply chain ที่ทีม security พยายามสร้างมาหลายปี และเพิ่งเห็นปัญหานี้ชัดๆ จากกรณี Zod เมื่อวาน
สำหรับองค์กรในไทยที่เริ่มให้ทีมใช้ coding agent กันมาก โดยเฉพาะสายการเงินที่อยู่ใต้กฎ ธปท. เรื่อง software inventory และ change management นี่เป็นจุดที่ต้องตรวจทันที ถ้าเครื่องนักพัฒนามี process ที่อัปเดตตัวเองโดยไม่ผ่านกระบวนการอนุมัติ ผู้ตรวจสอบย่อมถาม บทเรียนระยะยาวคือเครื่องมือ AI ทุกตัวควรถูกตรวจแบบเดียวกับ dependency ทั่วไป อ่าน changelog ทุกครั้งที่อัปเดต และตรวจ ps หลังติดตั้ง ไม่ว่าเครื่องมือนั้นจะมาจากผู้ขายรายใหญ่แค่ไหน
แหล่งข่าว
อ่านเพิ่มในหมวด เครื่องมือนักพัฒนา
Betelgeuse รัน Qwen3.8 Flash Next ขนาด 68GB บน RTX 3060 กับแรม 16GB ส่วน Basalt วัดให้เห็นว่าเอนจินที่เร่งด้วยแฟล็กลัดทำให้โมเดลลืมของ
Betelgeuse ฟอร์ก llama.cpp ที่เปิดเมื่อ 31 ต.ค. ดึง expert จาก NVMe เข้า VRAM ตามต้องการ อ้าง 22 tok/s แบบไม่ทิ้ง expert แต่ README เตือนเองว่ายังทดลองและตัวเลขมาจากคนละรอบ วันเดียวกันผู้พัฒนา Basalt เผยผลวัดว่าแฟล็กเร่งความเร็วทำคุณภาพ Q8 ตกไปใกล้ Q2
กฎห้ามโคลนเกมของ Claude Code เริ่มกระทบงานจริง บริษัทรับทำเกมกระดานร้องงานลูกค้าหยุด แต่รายงานหลายชิ้นปนกับตัวกรองไซเบอร์คนละเรื่อง
ต่อจากที่เราพบกฎนี้ในไบนารี Claude Code ผู้ใช้เริ่มรายงานว่างานเชิงพาณิชย์ถูกปฏิเสธ และ Tom's Hardware กับ Mashable หยิบไปรายงาน แต่เมื่อไล่ issue ที่อ้างถึง พบว่าหลายรายการเกิดก่อนกฎจะมา จึงน่าจะเป็นตัวกรองด้านไซเบอร์ ส่วน Anthropic ยังไม่ชี้แจง
Claude Code ส่ง transcript ของ background agent ให้โมเดลทุก ~30 วินาทีเพื่อเขียนสถานะ 3–5 คำ ผู้วัดรายงานกินราว 16% และยังปิดแบบทางการไม่ได้
รายงานอิสระพบว่าฟีเจอร์ agent_summary ของ Claude Code ส่ง transcript เต็มของ background agent ไปถามสถานะทุก ~30 วินาที คิดเป็น 16.4% ของค่าใช้จ่ายในระบบของผู้วัด Issue เปิดมาตั้งแต่ ส.ค. ยังไม่มีสวิตช์ปิดที่รองรับ เราตรวจพบโค้ดนี้ใน 2.1.314 และพบกฎใหม่เรื่องเกมที่ไม่อยู่ใน changelog