Mac स्लीप होने पर Claude Code रुक जाता है
आपने Claude Code को लंबा टास्क दिया, लिड बंद किया, और लौटकर देखा कि सेशन बंद पड़ा है। एजेंट में कोई गड़बड़ी नहीं है। macOS ने मशीन को स्लीप कर दिया। स्लीप हर प्रोसेस को रोक देता है, नेटवर्क काट देता है, और हर SSH कनेक्शन खत्म कर देता है। यह पेज उन सेटिंग्स के बारे में है जो इसे रोकती हैं, उसी क्रम में जिसमें उन्हें आज़माना चाहिए। साथ ही वह मोड़ भी, जहाँ सही इलाज एक दूसरी मशीन है।
स्लीप होने पर असल में क्या होता है
Mac स्लीप होने पर CPU आपके प्रोसेस चलाना बंद कर देता है। एजेंट मरता नहीं है। वह जम जाता है। मशीन जागने पर प्रोसेस फिर से चलने लगता है। तब तक उसका API कनेक्शन टाइम आउट हो चुका होता है। जो टूल कॉल बीच में थी, वह फ़ेल हो चुकी होती है। लैपटॉप पर लिड बंद करने का मतलब है कुछ ही सेकंड में स्लीप, जब तक कोई चीज़ उसे न रोके। लॉक स्क्रीन से स्लीप नहीं होता। स्क्रीनसेवर से भी नहीं। सिर्फ़ स्लीप टाइमर और लिड से होता है।
उपाय 1: एक टास्क के लिए caffeinate
macOS में एक टूल आता है जो कमांड चलने तक मशीन को जगाए रखता है। एजेंट को इसके ज़रिए शुरू करें। फिर एजेंट के बंद होने तक Mac जागता रहेगा।
caffeinate -i claude
यह फ़्लैग सिस्टम को idle स्लीप से रोकता है। डिस्प्ले भी चालू रखने के लिए दूसरा फ़्लैग जोड़ें। यह सिर्फ़ उन टूल के लिए ज़रूरी है जो स्क्रीन को चलाते हैं।
caffeinate -di claude
लैपटॉप की लिड बंद होने पर यह काम नहीं करता। लिड स्विच हर idle assertion को ओवरराइड कर देता है। एजेंट बंद होने के बाद भी यह कुछ नहीं करता, अगर आप अगला टास्क इसके बिना शुरू करते हैं।
उपाय 2: मशीन का स्लीप बंद करें
डेस्कटॉप Mac पर, या चार्जर से जुड़े लैपटॉप पर, स्लीप टाइमर को never पर सेट करें और छोड़ दें। हर एजेंट Mac पर हम यही सेटिंग्स इस्तेमाल करते हैं।
sudo pmset -a sleep 0 sudo pmset -a disksleep 0 sudo pmset -a displaysleep 10 sudo pmset -a womp 1
डिस्प्ले अब भी स्लीप हो सकता है। इससे बिजली बचती है, और टर्मिनल प्रोसेस पर कोई असर नहीं पड़ता। आखिरी लाइन wake on network चालू करती है। अगर कोई चीज़ मशीन को फिर भी स्लीप कर दे, तो यह मदद करती है।
उपाय 3: बंद लिड
लिड बंद होने पर MacBook स्लीप हो जाता है। अपवाद तब है जब वह चार्जर से जुड़ा हो और उससे बाहरी डिस्प्ले, कीबोर्ड या माउस जुड़ा हो। यह Apple का clamshell नियम है। डिस्प्ले के बिना, एक और सेटिंग लिड बंद होने पर भी मशीन को जगाए रखती है।
sudo pmset -a disablesleep 1
बाद में यही कमांड zero के साथ चलाकर इसे वापस करें। दो चेतावनियाँ हैं। बैग में या बिस्तर पर लैपटॉप गर्म होगा, इसलिए उसे किसी सख्त सतह पर रखें। और अगर पावर केबल निकल गई, तो बैटरी कुछ घंटों में खत्म हो जाएगी। फिर मशीन ठीक से शट डाउन हुए बिना बंद हो जाएगी।
उपाय 4: मशीन नहीं, टर्मिनल
कभी-कभी Mac जागता रहा, फिर भी सेशन गायब हो गया। इसकी वजह टर्मिनल विंडो का बंद होना या SSH कनेक्शन का टूटना है। इससे उसके अंदर की हर चीज़ को hangup सिग्नल जाता है। इसका जवाब टर्मिनल मल्टीप्लेक्सर है। एजेंट को tmux सेशन के अंदर चलाएँ। फिर वह विंडो बंद होने, SSH टूटने और Wi-Fi की गड़बड़ी के बाद भी चलता रहेगा।
brew install tmux tmux new -s agent claude
Ctrl-b और फिर d दबाकर detach करें। बाद में किसी भी टर्मिनल से, या फ़ोन से SSH के ज़रिए, एक कमांड से फिर जुड़ें।
tmux attach -t agent
इस सेटअप पर पूरी गाइड है: tmux से Claude Code सेशन को चालू रखना।
उपाय 5: रीबूट के बाद वापसी
सिक्योरिटी अपडेट मशीन को रीस्टार्ट करते हैं। बिजली का झटका भी करता है। रीस्टार्ट के बाद कुछ नहीं चलता, जब तक कोई लॉग इन न करे। जो मशीन बिना निगरानी के चलनी है, उस पर System Settings में एजेंट यूज़र के लिए automatic login चालू करें। फिर एक LaunchAgent जोड़ें, जो लॉग इन पर tmux सेशन दोबारा बनाए। हमेशा चालू Mac की चेकलिस्ट में पूरी लिस्ट है, बैटरी बैकअप समेत।
जब लैपटॉप गलत मशीन हो
ऊपर का सब कुछ काम करता है। पर इससे आपका लैपटॉप ऐसा सर्वर बन जाता है जिसे आप कहीं ले नहीं जा सकते। जब एजेंट रात भर असली काम करने लगता है, तो ज़्यादातर लोग उसे ऐसी मशीन पर ले जाते हैं जिसका एक ही काम है, चालू रहना। चार विकल्प हैं। घर पर एक फ़ालतू Mac mini। Linux मशीन, अगर Xcode नहीं चाहिए। क्लाउड में एक Mac। या होस्टेड Mac mini, जिसे कोई और जगाए रखता है। 24/7 एजेंट चलाने की जगहों की तुलना में सबका खर्च साथ-साथ दिया है।
अक्सर पूछे जाने वाले सवाल
क्या caffeinate लिड बंद होने पर भी Claude Code को चालू रखता है?
+
नहीं। MacBook पर लिड स्विच caffeinate को ओवरराइड कर देता है। मशीन चार्जर से जुड़ी होनी चाहिए और उससे बाहरी डिस्प्ले जुड़ा होना चाहिए। या फिर disablesleep पावर सेटिंग चाहिए।
क्या लॉक स्क्रीन या स्क्रीनसेवर एजेंट को रोक देगा?
+
नहीं। स्क्रीन लॉक करने और स्क्रीनसेवर चलने से मशीन स्लीप नहीं होती। सिर्फ़ स्लीप टाइमर, कम बैटरी या बंद लिड से होती है। टर्मिनल एजेंट के लिए लॉक स्क्रीन ठीक है।
क्या यह Codex पर भी लागू होता है?
+
हाँ। Codex CLI भी Claude Code की तरह एक टर्मिनल प्रोसेस है। वही स्लीप सेटिंग्स, caffeinate और tmux लागू होते हैं, और लिड का वही नियम भी।
क्या मैं फ़ोन से Mac को जगाए रख सकता हूँ?
+
आप फ़ोन से Claude Code के Remote Control या SSH से टास्क शुरू कर सकते हैं। पर Mac एक बार स्लीप होने का फ़ैसला कर ले, तो आप उसे दूर से नहीं रोक सकते। पावर सेटिंग्स एक बार मशीन पर ही सेट करें।