# Claude Code: ขีดจำกัดคำสั่งเบื้องหลัง 30 นาที

> Claude Code หยุดคำสั่งเบื้องหลังหลังผ่านไป 30 นาทีเมื่อทำงานโดยไม่มีผู้ดูแล: -p, Agent SDK, CI และคลาวด์ วิธีเพิ่มขีดจำกัดและสิ่งที่ควรทำหลังคำสั่งหยุดทำงาน

Source: https://ailoot.ai/blog/th/claude-code-background-30-min-timeout/
Canonical: https://ailoot.ai/blog/th/claude-code-background-30-min-timeout/
Language: th
Publisher: Ailoot (https://ailoot.ai/)
Translation: guide-043
Revision: sha256-34faf20a5aa1f35dc0c1e3fd27b50fcc56462a80190a670c162e512a9df7df7f


Claude Code จะหยุดคำสั่งเบื้องหลังหลังผ่านไป 30 นาทีเมื่อคำสั่งทำงานโดยไม่มีผู้ดูแล ได้แก่ การเรียกใช้ด้วยแฟล็ก `-p` แอปพลิเคชัน Agent SDK งาน CI หรือเซสชันบนคลาวด์ หาก Claude กำหนดเวลาให้คำสั่งนั้นเอง คำสั่งจะทำงานได้ไม่เกิน 2 ชั่วโมง ส่วนเทอร์มินัลทั่วไป แอปเดสก์ท็อป และ VS Code ไม่มีขีดจำกัดนี้มาตั้งแต่เวอร์ชัน 2.1.288

เมื่อก่อนฉันนั่งอยู่หน้าจอตลอดทั้งวัน คอยมอบหมายขั้นตอนให้เอเจนต์ ตรวจดู แก้ไข แล้วขอให้ทำต่อไป ทีละขั้นตอน เครื่องอาจเป็นฝ่ายเขียนโค้ด แต่ฉันคือคนที่คอยขับเคลื่อนมัน ตอนนี้ฉันเขียนแผน แบ่งออกเป็นระยะ ๆ มอบงานพัฒนาให้ซับเอเจนต์ทำข้ามคืน แล้วก็ออกไป ตลอด 8 ชั่วโมงที่ไม่มีฉัน Claude จะทำงานตามแผนไปเรื่อย ๆ ทั้งศึกษา สร้าง และปรับปรุง พอตอนเช้า ฉันใช้เวลาตรวจรับงานมากกว่าทำงานนั้นใหม่

แต่ถ้าการทำงานข้ามคืนใช้ `-p` ทำงานตามกำหนดเวลาบนเซิร์ฟเวอร์ ใน CI หรือบนคลาวด์ เซิร์ฟเวอร์พัฒนาและบิลด์ที่ทำงานอยู่เบื้องหลังจะอยู่ได้ 30 นาที จากนั้น Claude Code จะหยุดทั้งสองอย่าง และงานข้ามคืนก็จะสะดุดกลางคัน ฉันจะอธิบายว่าขีดจำกัดนี้มีผลกับใคร วิธีเพิ่มขีดจำกัด และควรทำอย่างไรหากคำสั่งหยุดไปแล้ว มาเริ่มกันเลย

หากต้องการความช่วยเหลือในการใช้บริการ โปรดดู[เอกสารประกอบของ Ailoot](https://ailoot.ai/docs/)



<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Key takeaway for this section">

ประเด็นสำคัญ

ตั้งแต่เวอร์ชัน 2.1.285 เป็นต้นมา Claude Code จะหยุดคำสั่งเบื้องหลังเองเมื่อคำสั่งถึงขีดจำกัดเวลา และแจ้ง Claude ถึงสาเหตุ ตั้งแต่เวอร์ชัน 2.1.288 ขีดจำกัดนี้มีผลเฉพาะกับการทำงานโดยไม่มีผู้ดูแล ได้แก่ `-p`, Agent SDK, CI และเซสชันบนคลาวด์ คำสั่งที่เริ่มทำงานเบื้องหลังโดยตรงจะทำงานเป็นเวลา 30 นาที หรือตามเวลาที่ระบุ แต่ไม่เกิน 2 ชั่วโมง ส่วนคำสั่งที่ย้ายไปทำงานเบื้องหลังหลังหมดเวลารอ จะทำงานต่อได้ 30 นาทีตั้งแต่ตอนนั้น คุณเพิ่มขีดจำกัดได้ด้วยตัวแปร 2 ตัวในไฟล์การตั้งค่า `~/.claude/settings.json`

</div>

## ขีดจำกัดนี้มีผลกับใครบ้าง

คำสั่งเบื้องหลังคือสิ่งที่ Claude เริ่มทำงานทิ้งไว้ ขณะที่กำลังทำอย่างอื่นอยู่ ตัวอย่างเช่น เซิร์ฟเวอร์พัฒนาที่เริ่มด้วย `npm run dev` หรือบิลด์ที่คอยตรวจดูการเปลี่ยนแปลงของไฟล์

เอกสาร Claude Code ระบุว่า:

<figure>
<blockquote>
<p>ในการทำงานที่ไม่มีผู้ดูแล เช่น การเรียกใช้ด้วยแฟล็ก <code>-p</code> แอปพลิเคชัน Agent SDK งาน CI หรือเซสชันบนคลาวด์ คำสั่ง Bash และ PowerShell ที่ทำงานเบื้องหลังจะมีขีดจำกัดเวลา ส่วนเซสชันภายในเครื่องที่คุณทำงานผ่านเทอร์มินัล แอปเดสก์ท็อป หรือส่วนขยาย VS Code จะไม่มีขีดจำกัดเวลาสำหรับคำสั่งเบื้องหลัง</p>
<p>ขีดจำกัดเวลานี้ต้องใช้ Claude Code เวอร์ชัน 2.1.285 ขึ้นไป ก่อนเวอร์ชัน 2.1.288 ขีดจำกัดนี้มีผลกับทุกเซสชัน</p>
</blockquote>
<figcaption>— Anthropic, เอกสารอ้างอิงเครื่องมือ, https://code.claude.com/docs/en/tools-reference.md</figcaption>
</figure>

พูดอีกอย่างคือ ขีดจำกัดนี้มีผลเมื่อคุณไม่อยู่ตรงนั้น ได้แก่ การทำงานด้วย `-p` แอปพลิเคชัน Agent SDK งาน CI หรือเซสชันบนคลาวด์ หากคุณทำงานในเซสชันด้วยตัวเองผ่านเทอร์มินัล แอปเดสก์ท็อป หรือ VS Code จะไม่มีขีดจำกัดนี้ ขีดจำกัดดังกล่าวเริ่มใช้ในเวอร์ชัน 2.1.285 และมีผลทุกที่ก่อนเวอร์ชัน 2.1.288

วิธีตรวจสอบว่าขีดจำกัดนี้มีผลกับคุณหรือไม่:

- **คุณเปิด Claude Code ในเทอร์มินัลหรือ VS Code มอบหมายงานให้ แล้วเข้านอน** หากใช้เวอร์ชัน 2.1.288 ขึ้นไป จะไม่มีขีดจำกัดนี้ ในเวอร์ชัน 2.1.285 ถึง 2.1.287 ขีดจำกัดนี้มีผลกับกรณีนี้ด้วย ฉันอธิบายวิธีอัปเดตเป็นเวอร์ชันล่าสุดไว้[ในบทความแยก](https://ailoot.ai/blog/th/update-claude-code/)
- **Claude Code เปิดทำงานด้วย `claude -p "task"`** ตามกำหนดเวลา จากแอปพลิเคชัน Agent SDK ของคุณเอง หรือใน CI ขีดจำกัดนี้มีผล
- **งานทำงานอยู่ในเซสชันบนคลาวด์** ขีดจำกัดนี้มีผล

เมื่อฉันมอบหมายงานให้เอเจนต์ทำงานอย่างอิสระ ฉันจะขอไว้ในพรอมป์ตว่า: “เขียนเงื่อนไขเหล่านี้และเหตุผลที่ต้องหยุดลงในแผนการทำงาน ตรวจสอบว่ากระบวนการไม่ได้ขึ้นอยู่กับหน้าต่างที่ฉันจะปิดหรือกับตัวคอมพิวเตอร์เอง” ขีดจำกัด 30 นาทีก็เป็นเหตุผลหนึ่งที่ต้องระบุไว้





## คำสั่งเบื้องหลังทำงานได้นานแค่ไหน

การนับเวลาถอยหลังเริ่มเมื่อคำสั่งเข้าสู่โหมดเบื้องหลัง มี 2 กรณี

**Claude เริ่มคำสั่งในโหมดเบื้องหลังทันที** คำสั่งจะทำงานได้ 30 นาที หาก Claude ระบุเวลาไว้ตอนเริ่มคำสั่ง (พารามิเตอร์ `timeout`) คำสั่งจะทำงานได้ตามเวลานั้น แต่ไม่เกิน 2 ชั่วโมง

**คำสั่งยังไม่เสร็จขณะที่ Claude กำลังรอ** Claude จะรอคำสั่งทั่วไปเป็นเวลา 2 นาที หากคำสั่งยังไม่เสร็จ Claude Code จะไม่หยุดคำสั่ง แต่จะย้ายไปทำงานเบื้องหลัง จากจุดนั้นจะทำงานต่อได้ 30 นาที

เมื่อหมดเวลา Claude Code จะหยุดคำสั่งและแจ้ง Claude ว่า:

```
Background command "<description>" was stopped after reaching its background time limit
```

หากงานยังไม่เสร็จ Claude สามารถเรียกใช้คำสั่งอีกครั้งโดยกำหนดเวลาให้นานขึ้น

และอีกประเด็นเกี่ยวกับ `-p` เมื่อทำงานแบบนี้ คำสั่งเบื้องหลังจะยุติลงประมาณ 5 วินาทีหลังจาก Claude ตอบคำตอบสุดท้าย เซิร์ฟเวอร์ที่เริ่มทำงานในการเรียกใช้ `-p` ข้ามคืนจะทำงานได้นานเท่าที่การเรียกใช้นั้นยังดำเนินอยู่ ขีดจำกัด 30 นาทีจะสำคัญเมื่อการทำงานใช้เวลานานกว่านั้น เช่น Claude เริ่มเซิร์ฟเวอร์ตอนต้น แล้วใช้เวลาหนึ่งชั่วโมงตรวจสอบการทำงานกับเซิร์ฟเวอร์นั้น

## วิธีจัดงานข้ามคืนใน Claude Code

ฉันเบื่อที่ต้องคอยขับเคลื่อนเอเจนต์ตลอดทั้งวัน จึงเปลี่ยนมาใช้พรอมป์ตสำหรับตัวประสานงานเพียงชุดเดียว ฉันเริ่มงานตอนเย็น แล้ว Claude ก็ทำงานตลอดทั้งคืนตามลำดับขั้นตอน ได้แก่ เขียน ตรวจสอบ แก้ไข และ commit ด้วยตัวเอง

กลุ่มซับเอเจนต์เขียนโค้ด โดยแต่ละกลุ่มมีไฟล์ของตัวเองเพื่อไม่ให้ทำงานขัดกัน จากนั้นกลุ่มใหม่อีกกลุ่มจะเข้ามาตรวจรับงาน ทั้งตรวจสอบโค้ด ตรวจสอบความปลอดภัย และตรวจสอบการทำงานจริง หากพบปัญหา ก็จะแก้ไขทันทีและเรียกใช้การตรวจสอบอีกครั้ง พรอมป์ตมีบรรทัดว่า: “หากบริบทของคุณหมด ให้บันทึกสถานะไว้ การทำงานครั้งถัดไปจะดำเนินต่อจากจุดนั้น”

ในตัวอย่างที่อธิบายไว้ ตลอด 3 วันสามารถทำขั้นตอนสำเร็จได้ 8 จาก 14 ขั้นตอนด้วยวิธีนี้

มีเพียง 2 เรื่องที่ต้องคำนึงถึง ตัวประสานงานไม่สามารถคิดแทนคุณได้: ก่อนอื่นให้เขียนแผนโดยละเอียดพร้อมแบ่งขั้นตอน แล้วค่อยเริ่มกะทำงานข้ามคืน อีกเรื่องคือวิธีนี้ใช้โควตาการสมัครสมาชิกของคุณมาก จึงไม่คุ้มที่จะตั้งค่าสำหรับงานเล็ก ๆ จำกัดจำนวนครั้งที่ลองเสมอ มิฉะนั้นเอเจนต์จะใช้โควตาการสมัครสมาชิกของคุณจนหมดในชั่วข้ามคืน ฉันอธิบายวิธีกำหนดขีดจำกัดการใช้จ่ายไว้[ในบทความแยก](https://ailoot.ai/blog/th/ai-agent-burned-budget-claude-code/)

## วิธีเพิ่มขีดจำกัด

**ตัวเลือกที่ 1: ขอให้ Claude ทำ** Claude เลือกระยะเวลาสำหรับคำสั่งแต่ละคำสั่ง คุณไม่ต้องกำหนดเอง แต่คุณสามารถเขียนในงานว่า: “ให้เซิร์ฟเวอร์พัฒนาทำงานเบื้องหลังเป็นเวลา 2 ชั่วโมง” วิธีนี้กำหนดเวลาได้ไม่เกิน 2 ชั่วโมง

**ตัวเลือกที่ 2: ตั้งค่าตัวแปรในไฟล์การตั้งค่า** ค่าเหล่านี้ใช้หน่วยมิลลิวินาที คุณไม่สามารถลดขีดจำกัดให้ต่ำกว่า 30 นาทีและ 2 ชั่วโมงได้ ทำได้เพียงเพิ่มขีดจำกัดเท่านั้น

- **`BASH_DEFAULT_TIMEOUT_MS`** หากตั้งค่าให้สูงกว่า `1800000` (30 นาที) ค่าเริ่มต้น 30 นาทีจะเปลี่ยนไป ตัวแปรนี้มีผลทั้งกับคำสั่งที่ Claude เริ่มทำงานเบื้องหลังโดยไม่ระบุเวลา และคำสั่งที่ย้ายไปทำงานเบื้องหลังหลังหมดเวลารอ หากตั้งค่าสูงกว่า `7200000` (2 ชั่วโมง) เพดานเวลาก็จะเพิ่มขึ้นด้วย
- **`BASH_MAX_TIMEOUT_MS`** หากตั้งค่าสูงกว่า `7200000` เพดาน 2 ชั่วโมงจะเพิ่มขึ้น ตัวแปรนี้ไม่เปลี่ยนค่าเริ่มต้น 30 นาที คำสั่งที่ไม่ได้กำหนดเวลาไว้เองยังคงหยุดหลังผ่านไป 30 นาที

`BASH_DEFAULT_TIMEOUT_MS` มีผลข้างเคียง ตัวแปรเดียวกันนี้กำหนดระยะเวลาที่ Claude รอคำสั่งทั่วไปก่อนย้ายไปทำงานเบื้องหลัง ตั้งไว้ 1 ชั่วโมง แล้ว Claude จะรอ 1 ชั่วโมงแทน 2 นาที เรื่องนี้ไม่เป็นปัญหาตอนกลางคืน แต่ในช่วงกลางวัน คุณจะรอคำตอบนานขึ้นเมื่อคำสั่งใช้เวลานาน

หากไม่ต้องการไล่ดูรายละเอียด: หากต้องการเวลา 3 ชั่วโมงทั้งสำหรับคำสั่งทั่วไปและเพดาน ให้ตั้ง `BASH_DEFAULT_TIMEOUT_MS` เป็น `10800000` เท่านี้ก็พอ ไม่จำเป็นต้องใช้ตัวแปรที่สอง

ไฟล์การตั้งค่าอยู่ในโฟลเดอร์ `.claude` ภายในไดเรกทอรีโฮมของคุณ: `~/.claude/settings.json` บน macOS และ Linux และ `%USERPROFILE%\.claude\settings.json` บน Windows หากไม่มีไฟล์นี้ ให้สร้างขึ้นมา ตัวอย่างการตั้งค่าขีดจำกัด 1 ชั่วโมง:

```json
{
  "env": {
    "BASH_DEFAULT_TIMEOUT_MS": "3600000"
  }
}
```

หากไฟล์มีบล็อก `env` อยู่แล้ว ให้เพิ่มบรรทัดนี้เข้าไป เมื่อบันทึกไฟล์ เซสชันที่กำลังทำงานอยู่จะนำค่าใหม่ไปใช้ การลบตัวแปรจะมีผลเมื่อเริ่ม `claude` ครั้งถัดไปเท่านั้น

ไฟล์นี้ต้องอยู่บนเครื่องที่เอเจนต์กำลังทำงาน หากต้องการให้เอเจนต์ทำงานข้ามคืน คอมพิวเตอร์ต้องไม่เข้าสู่โหมดพักเครื่อง อีกทางเลือกหนึ่งคือเรียกใช้ Claude Code บนเซิร์ฟเวอร์ระยะไกล แล้วบันทึกการตั้งค่าไว้ที่นั่น

## หากคำสั่งหยุดไปแล้ว

คุณไม่จำเป็นต้องจัดการอะไรด้วยตัวเอง Claude Code แจ้ง Claude ว่าทำไมคำสั่งจึงหยุด ดังนั้นให้ถาม Claude ก่อนว่าเกิดอะไรขึ้น

จากนั้นทำตามขั้นตอนทีละข้อ:

1. **การทำงานครั้งเดียวที่ใช้เวลานานไม่เกิน 2 ชั่วโมง** ขอให้ Claude เรียกใช้คำสั่งอีกครั้งโดยกำหนดเวลาให้นานขึ้น
2. **คำสั่งมักใช้เวลานานกว่า 30 นาที** ตั้ง `BASH_DEFAULT_TIMEOUT_MS` ให้สูงกว่า `1800000` ในไฟล์การตั้งค่า ตามตัวอย่างด้านบน หากต้องการเวลามากกว่า 2 ชั่วโมง ให้ตั้ง `BASH_MAX_TIMEOUT_MS` ให้สูงกว่า `7200000` ในไฟล์เดียวกันด้วย
3. **เรียกใช้คำสั่งอีกครั้ง** เอกสารไม่ได้รับรองว่าจะเกิดอะไรขึ้นกับคำสั่งที่กำลังทำงานเบื้องหลังอยู่ก่อนที่จะเปลี่ยนการตั้งค่า
4. **ตรวจสอบผลการทำงานครั้งถัดไป** หากรายงานของ Claude มีข้อความ “stopped after reaching its background time limit” อีกครั้ง แสดงว่าการตั้งค่าไม่มีผลกับคำสั่งนั้น

ซับเอเจนต์และรูทีนช่วยให้เอเจนต์ทำงานต่อได้ในระหว่างที่คุณไม่อยู่

ฉันอธิบายวิธีให้เอเจนต์ทำงานวนซ้ำตลอดทั้งคืนไว้[ในบทความแยก](https://ailoot.ai/blog/th/claude-code-loop-engineering/) ส่วนวิธีกำหนดค่า Claude Code เพื่อไม่ให้ทำโปรเจกต์พังข้ามคืน อธิบายไว้[ที่นี่](https://ailoot.ai/blog/th/claude-code-safe-overnight-setup/)

ตรวจสอบว่าขั้นตอนไหนทำให้การทำงานข้ามคืนหยุด แล้วเปรียบเทียบสาเหตุกับขีดจำกัดด้านบน

<div class="section" role="doc-bibliography" aria-label="Sources">

### แหล่งที่มา

- [Claude Code: เอกสารอ้างอิงเครื่องมือ](https://code.claude.com/docs/en/tools-reference.md) - ขอบเขตการใช้ขีดจำกัด เวอร์ชัน 2.1.285 และ 2.1.288 ระยะเวลา 30 นาทีและ 2 ชั่วโมง การย้ายคำสั่งไปทำงานเบื้องหลังหลังหมดเวลารอ ข้อความแจ้งเตือน และตัวแปร BASH_DEFAULT_TIMEOUT_MS กับ BASH_MAX_TIMEOUT_MS
- [Claude Code: ตัวแปรสภาพแวดล้อม](https://code.claude.com/docs/en/env-vars.md) - ค่าเริ่มต้น 2 นาทีสำหรับคำสั่งทั่วไป บล็อก env ใน ~/.claude/settings.json และเวลาที่เซสชันนำค่าใหม่ไปใช้
- [Claude Code: การทำงานแบบไม่มีส่วนติดต่อผู้ใช้](https://code.claude.com/docs/en/headless.md) - การทำงานด้วย -p; คำสั่งเบื้องหลังจะยุติลงประมาณ 5 วินาทีหลังคำตอบสุดท้าย
- [Claude Code: การตั้งค่า](https://code.claude.com/docs/en/settings.md) - ตำแหน่งของ ~/.claude/settings.json บน Windows

</div>





ทำความรู้จักกับ [Ailoot](https://ailoot.ai/)

## คำถามที่พบบ่อย

### เปิดเซสชันโต้ตอบทิ้งข้ามคืนจะติดขีดจำกัด 30 นาทีหรือไม่?

ใน Claude Code 2.1.288 ขึ้นไป ขีดจำกัดในบทความใช้กับงานไม่มีผู้ดูแล เช่น `-p`, Agent SDK, CI และเซสชันคลาวด์ การเปิดเซสชันโต้ตอบปกติในเครื่องทิ้งไว้ไม่ทำให้เข้ากลุ่มนั้น

### เพิ่ม timeout แล้วเซิร์ฟเวอร์อยู่ต่อหลังจบ -p ได้หรือไม่?

ไม่ได้ คำสั่งเบื้องหลังในงาน `-p` จะจบไม่นานหลังคำตอบสุดท้าย timeout เปลี่ยนเวลาคำสั่งระหว่างงาน ไม่ได้เปลี่ยนงานให้เป็นโฮสติ้งถาวร


## Ailoot · บริษัทและพอร์ตโฟลิโอโครงการของบริษัท

Ailoot อาศัยประสบการณ์การดำเนินงานที่สั่งสม ฐานลูกค้าขนาดใหญ่ บริการที่เสถียร และการติดตาม KPI อย่างต่อเนื่อง

บริษัทและพอร์ตโฟลิโอโครงการของบริษัท: ลูกค้าหลายล้านราย; ยอดขายระดับหลายพันล้านต่อเดือน.

Ailoot นำประสบการณ์การดำเนินงานนี้มาใช้เพื่อให้เข้าถึงฟังก์ชัน AI ผ่าน API ในผลิตภัณฑ์ของลูกค้า เอเจนต์ แอปพลิเคชัน และระบบอัตโนมัติ
