Blog

Claude Code: fon buyruqlari uchun 30 daqiqalik limit

Markdown

Claude Code nazoratsiz ishga tushirishlarda fon buyrug‘ini 30 daqiqadan keyin to‘xtatadi: -p, Agent SDK, CI, bulut. Limitni qanday oshirish va buyruq to‘xtaganidan keyin nima qilish kerak.

Maqolani to‘liq o‘qish

Claude Code buyruq nazoratsiz ishlaganda, masalan, -p bayrog‘i bilan ishga tushirilganda, Agent SDK ilovasida, CI vazifasida yoki bulut seansida fon buyrug‘ini 30 daqiqadan keyin to‘xtatadi. Agar Claude buyruqning o‘ziga vaqt belgilasa, u ko‘pi bilan 2 soat ishlaydi; oddiy terminal, desktop ilova va VS Code’da esa 2.1.288 versiyasidan beri limit yo‘q.

Ilgari kun bo‘yi ekran qarshisida o‘tirardim: agentga bir qadamni topshirardim, natijaga qarardim, tuzatish kiritardim, davom etishini so‘rardim. Bosqichma-bosqich. Kodni mashina yozayotgan bo‘lishi mumkin, ammo uni men boshqarardim. Endi reja yozaman, uni bosqichlarga ajrataman, amalga oshirishni subagentlarga topshirib, tun bo‘yi ishlashga qoldiraman va ketaman. Men yo‘q bo‘lgan 8 soat davomida Claude rejani bajaradi: o‘rganadi, quradi va takomillashtiradi. Ertalab ishni qaytadan qilishdan ko‘ra, uni qabul qilishga ko‘proq vaqt sarflayman.

Ammo tun bo‘yi ishlaydigan vazifa -p bilan ishga tushsa, serverda jadval bo‘yicha bajarilsa, CI’da yoki bulutda ishlasa, fonda ishlayotgan ishlab chiqish serveri va build 30 daqiqa davom etadi. Keyin Claude Code ularni to‘xtatadi va tun bo‘yi bajarilayotgan ish yarmida uziladi. Limit kimga taalluqli ekanini, uni qanday oshirishni va buyruq allaqachon to‘xtagan bo‘lsa nima qilishni tushuntiraman. Boshlaymiz.

Xizmatdan foydalanish bo‘yicha yordam uchun Ailoot hujjatlariga qarang.

Asosiy xulosa

2.1.285 versiyasidan beri Claude Code vaqt limiti tugaganda fon buyruqlarini o‘zi to‘xtatib, sababini Claude’ga bildiradi. 2.1.288 versiyasidan beri limit faqat nazoratsiz ishga tushirishlarga taalluqli: -p, Agent SDK, CI va bulut seanslari. Bevosita fonda ishga tushirilgan buyruq 30 daqiqa yoki unga belgilangan vaqt davomida ishlaydi, lekin ko‘pi bilan 2 soat. Vaqt tugagach fonda ishlashga o‘tkazilgan buyruq o‘sha paytdan boshlab 30 daqiqa ishlaydi. ~/.claude/settings.json sozlamalar faylidagi 2 ta o‘zgaruvchi orqali limitni oshirishingiz mumkin.

Limit kimga taalluqli

Fon buyrug‘i — Claude ishga tushirib, boshqa ish bilan band paytida ishlashda qoldiradigan buyruq. Masalan, npm run dev bilan ishga tushirilgan ishlab chiqish serveri yoki o‘zgarishlarni kuzatadigan build.

Claude Code hujjatlarida shunday deyilgan:

`-p` bayrog‘i bilan ishga tushirish, Agent SDK ilovasi, CI vazifasi yoki bulut seansi kabi nazoratsiz ishlaydigan seansda Bash va PowerShell fon buyruqlariga vaqt limiti qo‘yiladi. Terminalda, desktop ilovada yoki VS Code kengaytmasida o‘zingiz ishlayotgan mahalliy seansda fon buyruqlari uchun vaqt limiti yo‘q.

Vaqt limiti uchun Claude Code v2.1.285 yoki undan yangiroq versiya kerak. v2.1.288 dan oldin u barcha seanslarda amal qilgan.

— Anthropic, Vositalar ma’lumotnomasi, https://code.claude.com/docs/en/tools-reference.md

Boshqacha aytganda, limit siz yonida bo‘lmagan holatlarga taalluqli: -p bilan ishga tushirish, Agent SDK ilovasi, CI vazifasi yoki bulut seansi. Seansda o‘zingiz ishlayotgan bo‘lsangiz, terminal, desktop ilova yoki VS Code’da limit yo‘q. U 2.1.285 versiyasida joriy qilingan va 2.1.288 dan oldin hamma joyda amal qilgan.

Bu sizga taalluqli yoki yo‘qligini quyidagicha aniqlang:

  • Claude Code’ni terminalda yoki VS Code’da ochib, unga vazifa berdingiz va uxlashga ketdingiz. Versiya 2.1.288 yoki undan yangiroq bo‘lsa, limit yo‘q. 2.1.285 dan 2.1.287 gacha bo‘lgan versiyalarda bu holatga ham limit tatbiq etiladi. Eng so‘nggi versiyaga qanday yangilashni boshqa maqolada tushuntirdim.
  • Claude Code reja bo‘yicha, o‘zingizning Agent SDK ilovangizdan yoki CI’da claude -p "task" bilan ishga tushiriladi. Limit amal qiladi.
  • Vazifa bulut seansida bajariladi. Limit amal qiladi.

Agentlarni mustaqil ishlashga qo‘yganimda, so‘rov matnida shunday deyman: “Bu shartlarni va to‘xtash sabablarini ish rejasiga yoz. Jarayon men yopadigan oynaga yoki kompyuterning o‘ziga bog‘liq emasligini tekshir.” 30 daqiqalik limit ana shu sabablardan biridir.

Fon buyrug‘i qancha vaqt ishlaydi

Vaqt hisobi buyruq fonda ishlay boshlaganda boshlanadi. 2 ta holat bor.

Claude buyruqni darhol fonda ishga tushiradi. Unga 30 daqiqa beriladi. Agar Claude ishga tushirish paytida vaqt belgilasa (timeout parametri), buyruqqa shu vaqt beriladi, ammo ko‘pi bilan 2 soat.

Claude kutayotganida buyruq tugamaydi. Claude oddiy buyruqning tugashini 2 daqiqa kutadi. Agar buyruq tugamasa, Claude Code uni to‘xtatmaydi, balki fonda ishlashga o‘tkazadi. Shu paytdan boshlab unga 30 daqiqa beriladi.

Vaqt tugaganda Claude Code buyruqni to‘xtatib, Claude’ga quyidagini bildiradi:

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

Ish tugamagan bo‘lsa, Claude buyruqni uzoqroq vaqt bilan qayta ishga tushirishi mumkin.

-p haqida yana bir jihat. Bunday ishga tushirishda fon buyruqlari Claude’ning yakuniy javobidan taxminan 5 soniya keyin to‘xtaydi. Tun bo‘yi davom etadigan -p ishga tushirishida server faqat ishga tushirishning o‘zi qancha davom etsa, shuncha ishlaydi. 30 daqiqalik limit ishga tushirish uzoqroq davom etganda muhim: Claude serverni boshida ishga tushirib, bir soat davomida uning ustida tekshiruvlar o‘tkazadi.

Claude Code’da tun bo‘yi ishlashni qanday tashkil qilish mumkin

Agentni kun bo‘yi boshqarishdan charchadim, shuning uchun bitta orkestrator so‘rov matniga o‘tdim. Uni kechqurun ishga tushiraman, Claude esa tun bo‘yi bosqichlarni ketma-ket bajaradi: yozadi, tekshiradi, tuzatadi va mustaqil ravishda commit qiladi.

Subagentlar guruhlari kodni yozadi, har birining o‘z fayllari bo‘ladi, shunda ular bir-birining ishiga xalaqit bermaydi. Yana bir yangi guruh ishni qabul qilib oladi: kodni ko‘rib chiqadi, xavfsizlik va amaliy tekshiruvlarni o‘tkazadi. Muammo topsa, darhol tuzatilib, tekshiruvlar yana bajariladi. So‘rov matnida quyidagi jumla bor: “Agar kontekst tugasa, holatni qayd et; keyingi ishga tushirish davom ettiradi.”

Ta’riflangan misolda, 3 kun davomida 14 bosqichdan 8 tasi shu usulda yakunlangan.

Yodda tutish kerak bo‘lgan atigi 2 ta jihat bor. Orkestrator sizning o‘rningizga fikrlamaydi: avval bosqichlarga bo‘lingan batafsil reja yozing, keyin tun bo‘yi ishlashni boshlang. Bundan tashqari, u obuna limitidan ko‘p foydalanadi, shuning uchun kichik vazifa uchun buni sozlashning foydasi kam. Urinishlar sonini doim cheklang, aks holda agent tun bo‘yi butun obuna limitingizni sarflab yuboradi. Bu xarajat limitlarini qanday sozlashni boshqa maqolada tushuntirdim.

Limitni qanday oshirish mumkin

1-variant: Claude’dan so‘rang. Muayyan buyruq uchun vaqtni Claude tanlaydi; uni o‘zingiz belgilamaysiz. Lekin vazifada shunday yozishingiz mumkin: “Ishlab chiqish serverini fonda 2 soat ishlat.” Bu yo‘l bilan 2 soatdan ortiq vaqt belgilab bo‘lmaydi.

2-variant: sozlamalar faylidagi o‘zgaruvchilar. Qiymatlar millisekundlarda beriladi. Limitlarni 30 daqiqa va 2 soatdan pastga tushirib bo‘lmaydi; faqat oshirish mumkin.

  • BASH_DEFAULT_TIMEOUT_MS ni 1800000 dan (30 daqiqa) yuqoriga qo‘yish 30 daqiqalik standart qiymatni o‘zgartiradi. Bu Claude vaqt belgilamasdan fonda ishga tushiradigan buyruqlarga ham, vaqt tugagach fonda ishlashga o‘tkaziladigan buyruqlarga ham taalluqli. Uni 7200000 dan (2 soat) yuqoriga qo‘ysangiz, eng yuqori chegara ham oshadi.
  • BASH_MAX_TIMEOUT_MS ni 7200000 dan (2 soat) yuqoriga qo‘yish 2 soatlik eng yuqori chegarani oshiradi. Bu 30 daqiqalik standart qiymatni o‘zgartirmaydi: o‘z vaqti belgilanmagan buyruq baribir 30 daqiqadan keyin to‘xtaydi.

BASH_DEFAULT_TIMEOUT_MS ning qo‘shimcha ta’siri bor. Xuddi shu o‘zgaruvchi Claude oddiy buyruqni fonda ishlashga o‘tkazishdan oldin qancha kutishini belgilaydi. Uni 1 soatga qo‘ysangiz, Claude 2 daqiqa o‘rniga 1 soat kutadi. Bu tun bo‘yi ishlashga xalaqit bermaydi. Kunduzi esa buyruqlar uzoq ishlaganda javobni ko‘proq kutasiz.

Tafsilotlar bilan shug‘ullanishni istamasangiz: oddiy buyruqlar ham, eng yuqori chegara ham uchun 3 soat kerak bo‘lsa, BASH_DEFAULT_TIMEOUT_MS ni 10800000 ga qo‘ying. Shu kifoya; ikkinchi o‘zgaruvchi kerak emas.

Sozlamalar fayli uy katalogingizdagi .claude papkasida bo‘ladi: macOS va Linux’da ~/.claude/settings.json, Windows’da esa %USERPROFILE%\.claude\settings.json. Fayl mavjud bo‘lmasa, uni yarating. 1 soatlik limit quyidagicha ko‘rinadi:

{
  "env": {
    "BASH_DEFAULT_TIMEOUT_MS": "3600000"
  }
}

Faylda allaqachon env bloki bo‘lsa, qatorni unga qo‘shing. Faylni saqlaganingizda ishlayotgan seans yangi qiymatlarni oladi. O‘zgaruvchini olib tashlash esa faqat claude ni keyingi safar ishga tushirganingizda kuchga kiradi.

Fayl agent ishlayotgan mashinada bo‘lishi kerak. Agent tun bo‘yi ishlashi uchun kompyuter uyqu rejimiga o‘tmasligi lozim. Yoki Claude Code’ni masofaviy serverda ishga tushirib, sozlamalarni o‘sha yerga joylashtiring.

Buyruq allaqachon to‘xtagan bo‘lsa

Qo‘lda hech narsa qilishingiz shart emas. Claude Code Claude’ga buyruq nima sababdan to‘xtaganini bildiradi, shuning uchun avval undan nima bo‘lganini so‘rang.

Keyin bosqichma-bosqich davom eting:

  1. 2 soatgacha bo‘lgan bir martalik uzoq ishga tushirish. Claude’dan buyruqni uzoqroq vaqt bilan qayta ishga tushirishni so‘rang.
  2. Buyruqlar muntazam ravishda 30 daqiqadan ko‘proq vaqt oladi. Yuqoridagi misoldagidek, sozlamalar faylida BASH_DEFAULT_TIMEOUT_MS ni 1800000 dan yuqoriga qo‘ying. Agar 2 soatdan ko‘proq vaqt kerak bo‘lsa, u yerda BASH_MAX_TIMEOUT_MS ni ham 7200000 dan yuqoriga qo‘ying.
  3. Buyruqni yana ishga tushiring. Hujjatlarda o‘zgarishdan oldin fonda ishlayotgan buyruqqa bu ta’sir qilishi haqida kafolat berilmagan.
  4. Keyingi ishga tushirish natijasini tekshiring. Agar Claude hisobotida yana “fon vaqt limiti tugagani uchun to‘xtatildi” iborasi bo‘lsa, sozlama o‘sha buyruqqa tatbiq etilmagan.

Subagentlar va tartiblar agentni siz yo‘qligingizda ham ishlatib turadi.

Agentni tun bo‘yi takroriy siklda qanday ishlatishni boshqa maqolada tushuntirdim. Claude Code’ni tun bo‘yi loyihani buzmaydigan qilib qanday sozlash esa bu yerda tushuntirilgan.

Tun bo‘yi bajarilayotgan vazifangiz qaysi bosqichda to‘xtayotganini aniqlang va sababini yuqoridagi limitlar bilan solishtiring.

Manbalar

Ailoot bilan tanishing.

Batafsil

Ko‘p beriladigan savollar

Interaktiv seansni tun bo‘yi ochiq qoldirish 30 daqiqalik limitni yoqadimi?

Claude Code 2.1.288 va keyingi versiyalarda maqoladagi limit -p, Agent SDK, CI va bulut kabi nazoratsiz ishga tushirishlarga tegishli. Oddiy mahalliy interaktiv seansni ochiq qoldirish uni shu toifaga aylantirmaydi.

Kattaroq timeout -p tugagach serverni ishlatib turadimi?

Yo‘q. -p jarayonidagi fon buyruqlari yakuniy javobdan ko‘p o‘tmay tugatiladi. Timeout ish davomida buyruq muddatini o‘zgartiradi, jarayonni doimiy hostingga aylantirmaydi.

Barcha maqolalar