Claude Code: grænse på 30 minutter for baggrundskommandoer
MarkdownClaude Code stopper en baggrundskommando efter 30 minutter ved uovervågede kørsler: -p, Agent SDK, CI, cloud. Sådan hæver du grænsen, og hvad du gør, når en kommando stopper.
Læs hele artiklen
Claude Code stopper en baggrundskommando efter 30 minutter, når den kører uden opsyn: en start med flaget -p, et Agent SDK-program, et CI-job eller en cloudsession. Hvis Claude angiver en tid for selve kommandoen, kører den i højst 2 timer, mens den almindelige terminal, desktopappen og VS Code ikke har haft nogen grænse siden version 2.1.288.
Jeg plejede at sidde foran skærmen hele dagen: give agenten et trin, se på resultatet, rette noget og bede den fortsætte. Fase efter fase. Maskinen skriver måske koden, men det var mig, der styrede den. Nu skriver jeg en plan, deler den op i faser, overlader implementeringen til underagenter natten over og går min vej. I 8 timer uden mig arbejder Claude sig gennem planen: undersøger, bygger og forbedrer. Om morgenen bruger jeg mere tid på at godkende arbejdet end på at lave det om.
Men hvis en nattekørsel bruger -p og kører efter en tidsplan på en server, i CI eller i skyen, vil en udviklingsserver og et build, der kører i baggrunden, holde i 30 minutter. Derefter stopper Claude Code dem, og nattens arbejde går i stå halvvejs. Jeg forklarer, hvem grænsen gælder for, hvordan du hæver den, og hvad du gør, hvis en kommando allerede er stoppet. Lad os komme i gang.
Se Ailoot-dokumentationen for hjælp til at bruge tjenesten.
Vigtigt at vide
Siden version 2.1.285 har Claude Code selv stoppet baggrundskommandoer, når de når tidsgrænsen, og fortalt Claude hvorfor. Siden 2.1.288 gælder grænsen kun for kørsler uden opsyn: -p, Agent SDK, CI og cloudsessioner. En kommando, der startes direkte i baggrunden, kører i 30 minutter eller den angivne tid, dog højst 2 timer. En kommando, der flyttes til baggrunden efter en timeout, kører i 30 minutter fra det tidspunkt. Du kan hæve grænsen med 2 variabler i indstillingsfilen ~/.claude/settings.json.
Hvem grænsen gælder for
En baggrundskommando er noget, Claude starter og lader køre, mens den arbejder på noget andet. For eksempel en udviklingsserver, der er startet med npm run dev, eller et build, der overvåger ændringer i filer.
Dokumentationen til Claude Code siger:
I en session, der kører uden opsyn, f.eks. en kørsel med flaget
-p, et Agent SDK-program, et CI-job eller en cloudsession, har Bash- og PowerShell-kommandoer i baggrunden en tidsgrænse. En lokal session, som du arbejder i fra en terminal, desktopappen eller VS Code-udvidelsen, har ingen tidsgrænse for baggrundskommandoer.Tidsgrænsen kræver Claude Code v2.1.285 eller nyere. Før v2.1.288 gjaldt den i alle sessioner.
Med andre ord gælder grænsen, når du ikke er til stede: en kørsel med -p, et Agent SDK-program, et CI-job eller en cloudsession. Der er ingen grænse i terminalen, desktopappen eller VS Code, når du selv arbejder i sessionen. Den blev indført i 2.1.285 og gjaldt overalt før 2.1.288.
Sådan kan du se, om det gælder for dig:
- Du åbnede Claude Code i terminalen eller VS Code, gav den en opgave og gik i seng. Der er ingen grænse, hvis versionen er 2.1.288 eller nyere. I versionerne 2.1.285 til og med 2.1.287 gælder den også her. Jeg har forklaret, hvordan du opdaterer til den nyeste version i en separat artikel.
- Claude Code startes med
claude -p "task"efter en tidsplan, fra dit eget Agent SDK-program eller i CI. Grænsen gælder. - Opgaven kører i en cloudsession. Grænsen gælder.
Når jeg beder agenter arbejde selvstændigt, skriver jeg i prompten: »Skriv disse betingelser og årsagerne til at stoppe ind i arbejdsplanen. Kontrollér, at processen ikke afhænger af et vindue, jeg lukker, eller af selve computeren.« Grænsen på 30 minutter er en af årsagerne.
Hvor længe en baggrundskommando kører
Nedtællingen starter, når kommandoen går i baggrunden. Der er 2 tilfælde.
Claude starter kommandoen direkte i baggrunden. Den får 30 minutter. Hvis Claude angiver en tid, når kommandoen startes (parameteren timeout), får den den tid, dog højst 2 timer.
Kommandoen bliver ikke færdig, mens Claude venter på den. Claude venter 2 minutter på en almindelig kommando. Hvis den ikke er færdig, stopper Claude Code den ikke, men flytter den til baggrunden. Fra det tidspunkt har den 30 minutter.
Når tiden er gået, stopper Claude Code kommandoen og fortæller Claude:
Background command "<description>" was stopped after reaching its background time limit
Hvis arbejdet ikke er færdigt, kan Claude køre kommandoen igen med en længere tid.
Og endnu en ting om -p. Ved denne type kørsel afsluttes baggrundskommandoer cirka 5 sekunder efter Claudes endelige svar. En server, der startes i en nattekørsel med -p, kører kun så længe selve kørslen varer. Grænsen på 30 minutter betyder noget, når kørslen varer længere: Claude starter en server i begyndelsen og bruger en time på at køre kontroller mod den.
Sådan organiserer du natarbejde i Claude Code
Jeg blev træt af at styre agenten hele dagen, så jeg erstattede det med én orkestreringsprompt. Jeg starter den om aftenen, og Claude arbejder hele natten og gennemgår faserne i rækkefølge: skriver, kontrollerer, retter og committer på egen hånd.
Grupper af underagenter skriver koden, hver med sine egne filer, så de ikke kommer i vejen for hinanden. En anden, ny gruppe godkender arbejdet: kodegennemgang, sikkerhedskontroller og livekontroller. Hvis de finder et problem, bliver det straks rettet, og kontrollerne køres igen. Prompten indeholder linjen: »Hvis du løber tør for kontekst, så notér status; næste kørsel fortsætter.«
I det beskrevne eksempel blev 8 af 14 faser gennemført på denne måde over 3 dage.
Der er kun 2 ting, du skal huske. Orkestratoren tænker ikke for dig: Skriv først en detaljeret plan med faser, og start derefter nattevagten. Den bruger også en stor del af din abonnementsgrænse, så det kan næppe betale sig at sætte det op til en lille opgave. Begræns altid antallet af forsøg, ellers bruger agenten hele din abonnementsgrænse i løbet af natten. Jeg har forklaret, hvordan du sætter disse forbrugsgrænser i en separat artikel.
Sådan hæver du grænsen
Mulighed 1: Bed Claude om det. Claude vælger tiden for en bestemt kommando; du indstiller den ikke selv. Men du kan skrive i opgaven: »Hold udviklingsserveren kørende i baggrunden i 2 timer.« På denne måde kan du ikke få mere end 2 timer.
Mulighed 2: Variabler i indstillingsfilen. Værdierne angives i millisekunder. Du kan ikke sænke grænserne til under 30 minutter og 2 timer; du kan kun hæve dem.
BASH_DEFAULT_TIMEOUT_MSændrer standarden på 30 minutter, hvis den sættes til over1800000(30 minutter). Den gælder både for kommandoer, Claude starter i baggrunden uden at angive en tid, og for kommandoer, der flyttes til baggrunden efter en timeout. Hvis du sætter den til over7200000(2 timer), hæves loftet også.BASH_MAX_TIMEOUT_MShæver loftet på 2 timer, hvis den sættes til over7200000. Den ændrer ikke standarden på 30 minutter: En kommando uden en angivet tid stopper stadig efter 30 minutter.
BASH_DEFAULT_TIMEOUT_MS har en bivirkning. Den samme variabel bestemmer, hvor længe Claude venter på en almindelig kommando, før den flyttes til baggrunden. Sæt den til 1 time, så venter Claude 1 time i stedet for 2 minutter. Det er ikke noget problem om natten. Om dagen kommer du til at vente længere på et svar, når kommandoer tager lang tid.
Hvis du ikke vil sætte dig ind i detaljerne: Hvis du har brug for 3 timer både til almindelige kommandoer og som loft, skal du sætte BASH_DEFAULT_TIMEOUT_MS til 10800000. Det er nok; du behøver ikke den anden variabel.
Indstillingsfilen findes i mappen .claude i din hjemmemappe: ~/.claude/settings.json på macOS og Linux, og %USERPROFILE%\.claude\settings.json på Windows. Opret filen, hvis den ikke findes. En grænse på 1 time ser sådan ud:
{
"env": {
"BASH_DEFAULT_TIMEOUT_MS": "3600000"
}
}
Hvis filen allerede har en env-blok, skal du føje linjen til den. En kørende session henter de nye værdier, når du gemmer filen. Hvis du fjerner en variabel, træder ændringen først i kraft, næste gang du starter claude.
Filen skal være på den maskine, hvor agenten kører. For at agenten kan arbejde natten over, må computeren ikke gå i dvale. Du kan også køre Claude Code på en fjernserver og lægge indstillingerne dér.
Hvis kommandoen allerede er stoppet
Du behøver ikke gøre noget manuelt. Claude Code fortæller Claude, hvorfor en kommando stoppede, så spørg først bare, hvad der skete.
Fortsæt derefter trin for trin:
- En enkelt lang kørsel på op til 2 timer. Bed Claude køre kommandoen igen med længere tid.
- Kommandoer har regelmæssigt brug for mere end 30 minutter. Sæt
BASH_DEFAULT_TIMEOUT_MStil over1800000i indstillingsfilen, som i eksemplet ovenfor. Hvis du har brug for mere end 2 timer, skal du også sætteBASH_MAX_TIMEOUT_MStil over7200000dér. - Kør kommandoen igen. Dokumentationen giver ingen garantier for en kommando, der allerede kørte i baggrunden, før ændringen blev foretaget.
- Kontrollér resultatet af næste kørsel. Hvis Claudes rapport igen indeholder sætningen “stopped after reaching its background time limit”, blev indstillingen ikke anvendt på den kommando.
Underagenter og rutiner gør, at agenten kan arbejde videre, mens du er væk.
Jeg har forklaret, hvordan du kører en agent i en løkke hele natten i en separat artikel. Og her forklares det, hvordan du konfigurerer Claude Code, så det ikke ødelægger projektet natten over.
Kontrollér, hvilket trin der stopper din nattekørsel, og sammenlign årsagen med grænserne ovenfor.
Kilder
- Claude Code: værktøjsreference - hvor grænsen gælder, versionerne 2.1.285 og 2.1.288, 30 minutter og 2 timer, flytning af kommandoer til baggrunden efter en timeout, meddelelsesteksten samt variablerne BASH_DEFAULT_TIMEOUT_MS og BASH_MAX_TIMEOUT_MS.
- Claude Code: miljøvariabler - standardtiden på 2 minutter for en almindelig kommando, env-blokken i ~/.claude/settings.json, og hvornår en session henter nye værdier.
- Claude Code: headless - kørsler med -p; baggrundskommandoer afsluttes cirka 5 sekunder efter det endelige svar.
- Claude Code: indstillinger - hvor ~/.claude/settings.json ligger på Windows.
Lær Ailoot at kende.
Flere oplysninger
Spørgsmål og svar
Udløser en interaktiv session natten over 30-minuttersgrænsen?
I Claude Code 2.1.288 eller nyere gælder artiklens grænse kørsler uden opsyn som -p, Agent SDK, CI og cloudsessioner. En almindelig lokal interaktiv session bliver ikke en sådan kørsel, blot fordi den står åben.
Holder større timeout en server i live, efter at en -p-kørsel er færdig?
Nej. Baggrundskommandoer i en -p-kørsel afsluttes kort efter det sidste svar. Timeout ændrer kommandovarighed under kørslen; det gør ikke kørslen til vedvarende hosting.