Claude Code: όριο 30 λεπτών για εντολές παρασκηνίου
MarkdownΤο Claude Code διακόπτει μια εντολή παρασκηνίου μετά από 30 λεπτά σε μη επιτηρούμενες εκτελέσεις: -p, Agent SDK, CI, cloud. Πώς να αυξήσετε το όριο και τι να κάνετε αν διακοπεί μια εντολή.
Διαβάστε ολόκληρο το άρθρο
Το Claude Code διακόπτει μια εντολή παρασκηνίου μετά από 30 λεπτά όταν εκτελείται χωρίς επιτήρηση: μια εκκίνηση με τη σημαία -p, μια εφαρμογή Agent SDK, μια εργασία CI ή μια συνεδρία cloud. Αν ο Claude ορίσει χρόνο για την ίδια την εντολή, αυτή θα εκτελεστεί για έως 2 ώρες, ενώ το συνηθισμένο τερματικό, η εφαρμογή για υπολογιστή και το VS Code δεν έχουν όριο από την έκδοση 2.1.288.
Παλιά καθόμουν όλη μέρα μπροστά στην οθόνη: έδινα ένα βήμα στον πράκτορα, έλεγχα τι έκανε, διόρθωνα κάτι και του ζητούσα να συνεχίσει. Φάση τη φάση. Το μηχάνημα μπορεί να έγραφε τον κώδικα, αλλά εγώ ήμουν αυτός που το καθοδηγούσε. Τώρα γράφω ένα σχέδιο, το χωρίζω σε φάσεις, αναθέτω την υλοποίηση σε υποπράκτορες για όλη τη νύχτα και φεύγω. Για 8 ώρες χωρίς εμένα, ο Claude δουλεύει πάνω στο σχέδιο: μελετά, κατασκευάζει και βελτιώνει. Το πρωί, αφιερώνω περισσότερο χρόνο στην αποδοχή της δουλειάς παρά στο να την ξανακάνω.
Αν όμως μια ολονύκτια εκτέλεση χρησιμοποιεί το -p, εκτελείται προγραμματισμένα σε διακομιστή, στο CI ή στο cloud, ένας διακομιστής ανάπτυξης και μια διαδικασία build που εκτελούνται στο παρασκήνιο θα διαρκέσουν 30 λεπτά. Έπειτα το Claude Code θα τα διακόψει και η δουλειά της νύχτας θα σταματήσει στη μέση. Θα εξηγήσω ποιους αφορά το όριο, πώς να το αυξήσετε και τι να κάνετε αν μια εντολή έχει ήδη διακοπεί. Ας ξεκινήσουμε.
Για βοήθεια σχετικά με τη χρήση της υπηρεσίας, δείτε την τεκμηρίωση του Ailoot.
Κύριο συμπέρασμα
Από την έκδοση 2.1.285, το Claude Code διακόπτει το ίδιο τις εντολές παρασκηνίου όταν φτάσουν στο χρονικό όριο και ενημερώνει τον Claude για τον λόγο. Από την έκδοση 2.1.288, το όριο ισχύει μόνο για μη επιτηρούμενες εκτελέσεις: -p, Agent SDK, CI και συνεδρίες cloud. Μια εντολή που ξεκινά απευθείας στο παρασκήνιο εκτελείται για 30 λεπτά ή για τον χρόνο που έχει οριστεί, αλλά όχι περισσότερο από 2 ώρες. Μια εντολή που μεταφέρεται στο παρασκήνιο μετά από λήξη χρονικού ορίου εκτελείται για 30 λεπτά από εκείνη τη στιγμή. Μπορείτε να αυξήσετε το όριο με 2 μεταβλητές στο αρχείο ρυθμίσεων ~/.claude/settings.json.
Ποιους αφορά το όριο
Εντολή παρασκηνίου είναι κάτι που ξεκινά ο Claude και αφήνει να εκτελείται ενώ ασχολείται με κάτι άλλο. Για παράδειγμα, ένας διακομιστής ανάπτυξης που ξεκίνησε με npm run dev ή μια διαδικασία build που παρακολουθεί για αλλαγές στα αρχεία.
Η τεκμηρίωση του Claude Code αναφέρει:
Σε μια συνεδρία που εκτελείται χωρίς επιτήρηση, όπως μια εκτέλεση με τη σημαία
-p, μια εφαρμογή Agent SDK, μια εργασία CI ή μια συνεδρία cloud, οι εντολές Bash και PowerShell στο παρασκήνιο έχουν χρονικό όριο. Μια τοπική συνεδρία στην οποία εργάζεστε από τερματικό, την εφαρμογή για υπολογιστή ή την επέκταση VS Code δεν έχει χρονικό όριο για τις εντολές παρασκηνίου.Το χρονικό όριο απαιτεί Claude Code v2.1.285 ή μεταγενέστερη έκδοση. Πριν από την v2.1.288, ίσχυε σε κάθε συνεδρία.
Με άλλα λόγια, το όριο ισχύει όταν δεν βρίσκεστε εκεί: σε εκτέλεση με -p, σε εφαρμογή Agent SDK, σε εργασία CI ή σε συνεδρία cloud. Δεν υπάρχει όριο στο τερματικό, στην εφαρμογή για υπολογιστή ή στο VS Code όταν εργάζεστε οι ίδιοι στη συνεδρία. Εισήχθη στην έκδοση 2.1.285 και ίσχυε παντού πριν από την 2.1.288.
Πώς να καταλάβετε αν σας αφορά:
- Ανοίξατε το Claude Code στο τερματικό ή στο VS Code, του αναθέσατε μια εργασία και πήγατε για ύπνο. Δεν υπάρχει όριο αν η έκδοση είναι 2.1.288 ή νεότερη. Στις εκδόσεις 2.1.285 έως 2.1.287, ισχύει και εδώ. Εξήγησα πώς να ενημερώσετε στην πιο πρόσφατη έκδοση σε ξεχωριστό άρθρο.
- Το Claude Code εκκινείται με
claude -p "task"προγραμματισμένα, από τη δική σας εφαρμογή Agent SDK ή στο CI. Ισχύει το όριο. - Η εργασία εκτελείται σε συνεδρία cloud. Ισχύει το όριο.
Όταν βάζω πράκτορες να δουλέψουν ανεξάρτητα, ζητώ στην προτροπή: «Γράψε αυτές τις συνθήκες και τους λόγους διακοπής στο σχέδιο εργασίας. Έλεγξε ότι η διαδικασία δεν εξαρτάται από ένα παράθυρο που θα κλείσω ή από τον ίδιο τον υπολογιστή». Το όριο των 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 σημεία που πρέπει να έχετε υπόψη. Ο ενορχηστρωτής δεν σκέφτεται αντί για εσάς: πρώτα γράψτε ένα λεπτομερές σχέδιο με φάσεις και έπειτα ξεκινήστε τη νυχτερινή βάρδια. Επίσης, καταναλώνει μεγάλο μέρος του ορίου χρήσης της συνδρομής σας, οπότε δεν έχει νόημα να το ρυθμίσετε για μια μικρή εργασία. Να περιορίζετε πάντα τον αριθμό των προσπαθειών, αλλιώς ο πράκτορας θα εξαντλήσει όλο το όριο της συνδρομής σας μέσα στη νύχτα. Εξήγησα πώς να ορίσετε αυτά τα όρια χρήσης σε ξεχωριστό άρθρο.
Πώς να αυξήσετε το όριο
Επιλογή 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 ώρας φαίνεται ως εξής:
{
"env": {
"BASH_DEFAULT_TIMEOUT_MS": "3600000"
}
}
Αν το αρχείο έχει ήδη μπλοκ env, προσθέστε εκεί τη γραμμή. Μια ενεργή συνεδρία λαμβάνει τις νέες τιμές όταν αποθηκεύσετε το αρχείο. Η αφαίρεση μιας μεταβλητής ισχύει μόνο την επόμενη φορά που θα ξεκινήσετε το claude.
Το αρχείο πρέπει να βρίσκεται στο μηχάνημα όπου εκτελείται ο πράκτορας. Για να εργαστεί ο πράκτορας όλη τη νύχτα, ο υπολογιστής δεν πρέπει να μπει σε αναστολή λειτουργίας. Εναλλακτικά, εκτελέστε το Claude Code σε απομακρυσμένο διακομιστή και τοποθετήστε εκεί τις ρυθμίσεις.
Αν η εντολή έχει ήδη διακοπεί
Δεν χρειάζεται να κάνετε τίποτα χειροκίνητα. Το Claude Code ενημερώνει τον Claude γιατί διακόπηκε μια εντολή, οπότε πρώτα απλώς ρωτήστε τον τι συνέβη.
Έπειτα προχωρήστε βήμα βήμα:
- Μια μεμονωμένη εκτέλεση μεγάλης διάρκειας, έως 2 ώρες. Ζητήστε από τον Claude να εκτελέσει ξανά την εντολή με μεγαλύτερο χρονικό όριο.
- Οι εντολές χρειάζονται τακτικά πάνω από 30 λεπτά. Ορίστε το
BASH_DEFAULT_TIMEOUT_MSπάνω από1800000στο αρχείο ρυθμίσεων, όπως στο παραπάνω παράδειγμα. Αν χρειάζεστε πάνω από 2 ώρες, ορίστε επίσης εκεί τοBASH_MAX_TIMEOUT_MSπάνω από7200000. - Εκτελέστε ξανά την εντολή. Η τεκμηρίωση δεν εγγυάται τίποτα για μια εντολή που εκτελούνταν ήδη στο παρασκήνιο πριν από την αλλαγή.
- Ελέγξτε το αποτέλεσμα της επόμενης εκτέλεσης. Αν η αναφορά του Claude περιέχει ξανά τη φράση «stopped after reaching its background time limit», η ρύθμιση δεν εφαρμόστηκε σε αυτή την εντολή.
Οι υποπράκτορες και οι ρουτίνες είναι αυτά που κρατούν τον πράκτορα σε λειτουργία όσο λείπετε.
Εξήγησα πώς να εκτελείτε έναν πράκτορα σε βρόχο όλη τη νύχτα σε ξεχωριστό άρθρο. Και εδώ εξηγείται πώς να ρυθμίσετε το Claude Code ώστε να μην καταστρέψει το έργο μέσα στη νύχτα.
Ελέγξτε σε ποιο βήμα σταματά η ολονύκτια εκτέλεσή σας και συγκρίνετε τον λόγο με τα παραπάνω όρια.
Πηγές
- Claude Code: Αναφορά εργαλείων - σε ποιες περιπτώσεις ισχύει το όριο, οι εκδόσεις 2.1.285 και 2.1.288, τα 30 λεπτά και οι 2 ώρες, η μεταφορά εντολών στο παρασκήνιο μετά από λήξη χρονικού ορίου, το κείμενο ειδοποίησης και οι μεταβλητές BASH_DEFAULT_TIMEOUT_MS και BASH_MAX_TIMEOUT_MS.
- Claude Code: Μεταβλητές περιβάλλοντος - η προεπιλογή των 2 λεπτών για μια συνηθισμένη εντολή, το μπλοκ env στο ~/.claude/settings.json και πότε μια συνεδρία λαμβάνει τις νέες τιμές.
- Claude Code: Headless - εκτελέσεις με -p· οι εντολές παρασκηνίου τερματίζονται περίπου 5 δευτερόλεπτα μετά την τελική απάντηση.
- Claude Code: Ρυθμίσεις - πού βρίσκεται το ~/.claude/settings.json στα Windows.
Γνωρίστε το Ailoot.
Περισσότερες λεπτομέρειες
Ερωτήσεις και απαντήσεις: Claude Code: όριο 30 λεπτών για εντολές παρασκηνίου
Η διατήρηση διαδραστικής συνεδρίας όλη νύχτα ενεργοποιεί το όριο 30 λεπτών;
Στο Claude Code 2.1.288 ή νεότερο, το όριο του άρθρου ισχύει σε ανεπιτήρητες εκτελέσεις όπως -p, Agent SDK, CI και cloud συνεδρίες. Η απλή διατήρηση συνηθισμένης τοπικής διαδραστικής συνεδρίας ανοιχτής δεν τη βάζει σε αυτή την κατηγορία.
Μεγαλύτερο timeout κρατά ενεργό server αφού τελειώσει εκτέλεση -p;
Όχι. Εντολές παρασκηνίου σε εκτέλεση -p τερματίζονται λίγο μετά την τελική απάντηση. Η αλλαγή timeout επηρεάζει διάρκεια εντολής κατά την εκτέλεση· δεν τη μετατρέπει σε μόνιμη φιλοξενία.