Blogi

Claude Code: taustakomennon 30 minuutin aikaraja

Markdown

Claude Code pysäyttää taustakomennon 30 minuutin kuluttua valvomattomissa ajoissa: -p, Agent SDK, CI, pilvi. Näin nostat rajaa ja toimit, kun komento pysähtyy.

Lue koko artikkeli

Claude Code pysäyttää taustakomennon 30 minuutin kuluttua, kun sitä ajetaan valvomatta: käynnistys -p-lipulla, Agent SDK -sovellus, CI-työ tai pilvi-istunto. Jos Claude määrittää komennolle suoritusajan, se voi olla käynnissä enintään 2 tuntia. Tavallisessa terminaalissa, työpöytäsovelluksessa ja VS Codessa ei ole ollut aikarajaa versiosta 2.1.288 lähtien.

Ennen istuin koko päivän näytön ääressä: annoin agentille yhden vaiheen, tarkistin sen, tein korjauksen ja pyysin sitä jatkamaan. Vaihe toisensa jälkeen. Kone saattoi kirjoittaa koodia, mutta minä ohjasin sitä. Nyt kirjoitan suunnitelman, jaan sen vaiheisiin, annan toteutuksen aliagenteille yön ajaksi ja lähden pois. Claude käy suunnitelmaa läpi 8 tuntia ilman minua: tutkii, rakentaa ja viimeistelee. Aamulla käytän enemmän aikaa työn hyväksymiseen kuin sen tekemiseen uudelleen.

Jos yöajo kuitenkin käyttää -p-lippua ja suoritetaan aikataulun mukaan palvelimella, CI:ssä tai pilvessä, taustalla käynnissä oleva kehityspalvelin ja koonti kestävät 30 minuuttia. Sitten Claude Code pysäyttää ne, ja yötyö keskeytyy puolivälissä. Kerron, ketä raja koskee, miten sitä nostetaan ja mitä tehdä, jos komento on jo pysähtynyt. Aloitetaan.

Katso palvelun käyttöohjeet Ailoot-dokumentaatiosta.

Tärkein asia

Versiosta 2.1.285 lähtien Claude Code on pysäyttänyt taustakomennot itse niiden aikarajan täyttyessä ja kertonut Claudelle pysäyttämisen syyn. Versiosta 2.1.288 lähtien raja koskee vain valvomattomia ajoja: -p, Agent SDK, CI ja pilvi-istunnot. Suoraan taustalla käynnistetty komento on käynnissä 30 minuuttia tai sille määritetyn ajan, kuitenkin enintään 2 tuntia. Aikakatkaisun jälkeen taustalle siirretty komento on käynnissä 30 minuuttia siirtohetkestä. Voit nostaa rajaa kahdella muuttujalla asetustiedostossa ~/.claude/settings.json.

Ketä raja koskee

Taustakomento on komento, jonka Claude käynnistää ja jättää käyntiin samalla, kun se tekee muuta. Esimerkiksi komennolla npm run dev käynnistetty kehityspalvelin tai tiedostomuutoksia seuraava koonti.

Claude Coden dokumentaatiossa sanotaan:

Valvomattomassa istunnossa, kuten -p-lipulla käynnistetyssä ajossa, Agent SDK -sovelluksessa, CI-työssä tai pilvi-istunnossa, taustalla suoritettavilla Bash- ja PowerShell-komennoilla on aikaraja. Paikallisessa istunnossa, jota käytät terminaalissa, työpöytäsovelluksessa tai VS Code -laajennuksessa, taustakomennoilla ei ole aikarajaa.

Aikarajan käyttö edellyttää Claude Code -versiota v2.1.285 tai uudempaa. Ennen versiota v2.1.288 raja koski kaikkia istuntoja.

— Anthropic, työkalujen viiteopas, https://code.claude.com/docs/en/tools-reference.md

Toisin sanoen raja koskee tilanteita, joissa et itse ole paikalla: ajoa -p-lipulla, Agent SDK -sovellusta, CI-työtä tai pilvi-istuntoa. Terminaalissa, työpöytäsovelluksessa tai VS Codessa ei ole rajaa, kun työskentelet itse istunnossa. Raja otettiin käyttöön versiossa 2.1.285, ja ennen versiota 2.1.288 se koski kaikkia tilanteita.

Näin voit tarkistaa, koskeeko tämä sinua:

  • Avasit Claude Coden terminaalissa tai VS Codessa, annoit sille tehtävän ja menit nukkumaan. Aikarajaa ei ole, jos versio on 2.1.288 tai uudempi. Versioissa 2.1.285–2.1.287 raja koskee myös tätä tilannetta. Kerroin uusimpaan versioon päivittämisestä erillisessä artikkelissa.
  • Claude Code käynnistetään komennolla claude -p "task" aikataulun mukaan, omasta Agent SDK -sovelluksestasi tai CI:ssä. Raja koskee ajoa.
  • Tehtävä suoritetaan pilvi-istunnossa. Raja koskee ajoa.

Kun annan agenteille itsenäisiä tehtäviä, lisään kehotteeseen: ”Kirjoita nämä ehdot ja pysäyttämisen syyt työskentelysuunnitelmaan. Tarkista, ettei prosessi riipu ikkunasta, jonka suljen, tai itse tietokoneesta.” 30 minuutin raja on yksi näistä syistä.

Kuinka kauan taustakomento on käynnissä

Laskenta alkaa, kun komento siirtyy taustalle. Vaihtoehtoja on 2.

Claude käynnistää komennon suoraan taustalla. Se saa 30 minuuttia. Jos Claude määrittää käynnistyksen yhteydessä ajan (parametri timeout), komento saa sen verran aikaa, kuitenkin enintään 2 tuntia.

Komento ei valmistu Clauden odottaessa. Claude odottaa tavallista komentoa 2 minuuttia. Jos se ei ole valmistunut, Claude Code ei pysäytä sitä vaan siirtää sen taustalle. Siitä hetkestä lähtien sillä on 30 minuuttia.

Kun aika loppuu, Claude Code pysäyttää komennon ja ilmoittaa Claudelle:

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

Jos työ on kesken, Claude voi käynnistää komennon uudelleen pidemmällä ajalla.

Vielä yksi asia -p-lipusta. Tällaisessa ajossa taustakomennot päättyvät noin 5 sekuntia Clauden lopullisen vastauksen jälkeen. Yöajossa -p-lipulla käynnistetty palvelin pysyy käynnissä vain niin kauan kuin ajo jatkuu. 30 minuutin raja on merkityksellinen, kun ajo kestää pidempään: Claude käynnistää palvelimen alussa ja käyttää tunnin sen testaamiseen.

Yötyön järjestäminen Claude Codessa

Kyllästyin ohjaamaan agenttia koko päivän, joten korvasin sen yhdellä orkestrointikehotteella. Käynnistän sen illalla, ja Claude työskentelee koko yön käyden vaiheet järjestyksessä läpi: kirjoittaa, tarkistaa, korjaa ja tekee commitit itsenäisesti.

Aliagenttiryhmät kirjoittavat koodia kukin omiin tiedostoihinsa, jotta ne eivät häiritse toistensa työtä. Toinen, uusi ryhmä tarkistaa työn: koodikatselmointi, tietoturvatarkistukset ja live-tarkistukset. Jos ryhmä löytää ongelman, se korjataan heti ja tarkistukset ajetaan uudelleen. Kehotteessa on rivi: ”Jos konteksti loppuu, kirjaa tilanne; seuraava ajo jatkaa siitä.”

Kuvatussa esimerkissä tällä tavoin saatiin valmiiksi 8 vaihetta 14:stä 3 päivän aikana.

Pidä mielessä vain 2 asiaa. Orkestroija ei ajattele puolestasi: kirjoita ensin yksityiskohtainen, vaiheisiin jaettu suunnitelma ja käynnistä sitten yövuoro. Se kuluttaa myös suuren osan tilauksesi käyttökiintiöstä, joten tällaista ei juuri kannata ottaa käyttöön pientä tehtävää varten. Rajoita aina yritysten määrää, tai agentti käyttää koko tilauksesi käyttökiintiön yön aikana. Kerroin käyttörajojen asettamisesta erillisessä artikkelissa.

Näin nostat rajaa

Vaihtoehto 1: pyydä Claudelta. Claude valitsee yksittäisen komennon suoritusajan; sinä et aseta sitä itse. Voit kuitenkin kirjoittaa tehtävään: ”Pidä kehityspalvelin taustalla käynnissä 2 tuntia.” Tällä tavalla et voi saada yli 2 tuntia.

Vaihtoehto 2: asetustiedoston muuttujat. Arvot annetaan millisekunteina. Et voi laskea rajoja alle 30 minuutin ja 2 tunnin; voit vain nostaa niitä.

  • BASH_DEFAULT_TIMEOUT_MS muuttaa 30 minuutin oletusarvoa, kun asetat sen suuremmaksi kuin 1800000 (30 minuuttia). Se koskee sekä komentoja, jotka Claude käynnistää taustalla määrittämättä niille aikaa, että komentoja, jotka siirretään taustalle aikakatkaisun jälkeen. Jos asetat arvon suuremmaksi kuin 7200000 (2 tuntia), myös enimmäisaika nousee.
  • BASH_MAX_TIMEOUT_MS nostaa 2 tunnin enimmäisrajaa, kun asetat sen suuremmaksi kuin 7200000. Se ei muuta 30 minuutin oletusarvoa: komento, jolle ei ole määritetty omaa aikaa, pysähtyy edelleen 30 minuutin kuluttua.

BASH_DEFAULT_TIMEOUT_MS-muuttujalla on sivuvaikutus. Sama muuttuja määrittää, kuinka kauan Claude odottaa tavallisen komennon valmistumista ennen sen siirtämistä taustalle. Jos asetat arvoksi 1 tunnin, Claude odottaa 1 tunnin eikä 2 minuuttia. Se ei haittaa yöllä. Päivällä joudut odottamaan pidempään vastausta, jos komentojen suoritus kestää pitkään.

Jos et halua perehtyä yksityiskohtiin: jos tarvitset 3 tuntia sekä tavallisille komennoille että enimmäisajaksi, aseta BASH_DEFAULT_TIMEOUT_MS arvoon 10800000. Se riittää; et tarvitse toista muuttujaa.

Asetustiedosto on kotihakemistosi .claude-kansiossa: macOS- ja Linux-järjestelmissä ~/.claude/settings.json ja Windowsissa %USERPROFILE%\.claude\settings.json. Luo tiedosto, jos sitä ei ole. 1 tunnin raja näyttää tältä:

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

Jos tiedostossa on jo env-lohko, lisää rivi siihen. Käynnissä oleva istunto ottaa uudet arvot käyttöön, kun tallennat tiedoston. Muuttujan poistaminen vaikuttaa vasta, kun käynnistät claude-komennon seuraavan kerran.

Tiedoston on oltava koneessa, jolla agentti toimii. Jotta agentti voi työskennellä yön yli, tietokone ei saa siirtyä lepotilaan. Voit myös suorittaa Claude Coden etäpalvelimella ja tallentaa asetukset sinne.

Jos komento on jo pysähtynyt

Sinun ei tarvitse tehdä mitään manuaalisesti. Claude Code kertoo Claudelle, miksi komento pysähtyi, joten kysy ensin vain, mitä tapahtui.

Etene sitten vaiheittain:

  1. Yksittäinen pitkä ajo, enintään 2 tuntia. Pyydä Claudea käynnistämään komento uudelleen pidemmällä ajalla.
  2. Komennot tarvitsevat säännöllisesti yli 30 minuuttia. Aseta BASH_DEFAULT_TIMEOUT_MS asetustiedostossa suuremmaksi kuin 1800000 yllä olevan esimerkin tapaan. Jos tarvitset yli 2 tuntia, aseta siellä myös BASH_MAX_TIMEOUT_MS suuremmaksi kuin 7200000.
  3. Käynnistä komento uudelleen. Dokumentaatio ei lupaa mitään komennosta, joka oli jo käynnissä taustalla ennen muutosta.
  4. Tarkista seuraavan ajon tulos. Jos Clauden raportissa esiintyy jälleen ilmaus ”stopped after reaching its background time limit”, asetus ei vaikuttanut kyseiseen komentoon.

Aliagenttien ja rutiinien avulla agentti voi työskennellä, kun olet poissa.

Kerroin agentin ajamisesta silmukassa koko yön erillisessä artikkelissa. Täällä kerrotaan, miten Claude Code määritetään niin, ettei se riko projektia yön aikana.

Selvitä, mikä vaihe pysäyttää yöajon, ja vertaa pysäyttämisen syytä yllä kuvattuihin rajoihin.

Lähteet

  • Claude Code: työkalujen viiteopas - missä raja on käytössä, versiot 2.1.285 ja 2.1.288, 30 minuuttia ja 2 tuntia, komentojen siirtäminen taustalle aikakatkaisun jälkeen, ilmoituksen teksti sekä muuttujat BASH_DEFAULT_TIMEOUT_MS ja BASH_MAX_TIMEOUT_MS.
  • Claude Code: ympäristömuuttujat - tavallisen komennon 2 minuutin oletusaika, env-lohko tiedostossa ~/.claude/settings.json ja se, milloin istunto ottaa uudet arvot käyttöön.
  • Claude Code: headless - ajot -p-lipulla; taustakomennot päättyvät noin 5 sekuntia lopullisen vastauksen jälkeen.
  • Claude Code: asetukset - missä tiedosto ~/.claude/settings.json sijaitsee Windowsissa.

Tutustu Ailootiin.

Lisätietoja

Kysymyksiä tästä oppaasta: Claude Code: taustakomennon 30 minuutin aikaraja

Laukaiseeko vuorovaikutteisen istunnon jättäminen yöksi auki 30 minuutin rajan?

Claude Code 2.1.288:ssa ja uudemmissa artikkelin raja koskee valvomattomia ajoja, kuten -p-ajoja, Agent SDK:ta, CI:tä ja pilvi-istuntoja. Tavallisen paikallisen vuorovaikutteisen istunnon jättäminen auki ei yksin muuta sitä tällaiseksi ajoksi.

Pitääkö pidempi aikaraja palvelimen käynnissä -p-ajon päätyttyä?

Ei. -p-ajon taustakomennot päättyvät pian lopullisen vastauksen jälkeen. Aikarajan muuttaminen vaikuttaa komennon kestoon ajon aikana; se ei tee ajosta pysyvää hostingia.

Kaikki artikkelit