איך למנוע מה־Mac או מה־PC להיכנס למצב שינה בזמן שסוכן קוד עובד
מנעו מ־Mac או ממחשב Windows להיכנס למצב שינה בזמן שסוכן קוד מריץ משימה ארוכה, בעזרת caffeinate או הגדרות השינה, ואחר כך החזירו את ההגדרות למצבן הקודם.
כדי להשאיר Mac ער בזמן שסוכן קוד עובד, פתחו את אפליקציית המסוף (Terminal), הריצו caffeinate -i והשאירו את החלון פתוח עד שהמשימה מסתיימת. ב־Windows 11, הגדירו בהגדרות את זמן השינה במצב חיבור לחשמל ל״אף פעם״ (Never), ואחר כך החזירו אותו לערך הקודם. השאירו מחשב נייד מחובר למטען, עם המכסה פתוח.
המדריך עוסק ב־macOS וב־Windows 11, אבל לא בהפעלת מחשב נייד כשהמכסה סגור. Mono מבית Reunified יכול להשאיר Mac ער בזמן שסוכן עובד, אבל השלבים האלה מתאימים לכל סוכן.
1. הבינו מה מצב שינה עושה לסשן של סוכן
מצב שינה משהה כל תוכנה, כולל הסוכן, ומנתק את חיבורי הרשת שלה. ייתכן שהסשן לא יתאושש כמו שצריך.
- שינה של הצג רק מכבה את המסך. התוכנות ממשיכות לרוץ.
- שינה בחוסר פעילות עוצרת את המחשב אחרי זמן מה בלי קלט. סוכן שעובד לא נחשב כקלט.
- סגירת המכסה של מחשב נייד מכניסה אותו בדרך כלל למצב שינה, בלי קשר להגדרות חוסר הפעילות.
- כיבוי או הפעלה מחדש מסיימים את הסשן.
אל תסמכו על הטלפון שיעיר מחשב שנמצא במצב שינה או כבוי.
דוגמה בדויה: לפני ארוחת הצהריים אתם משאירים סוכן לשדרג תלויות ולהריץ בדיקות בפרויקט ״tidy-recipes״ שלכם. זו עבודה של כ־40 דקות ב־MacBook Air שמחובר לחשמל.
2. השאירו Mac ער למשימה אחת עם caffeinate
caffeinate מובנה ב־macOS. עם -i הוא מונע שינה בחוסר פעילות כל עוד הוא רץ. כשהוא נעצר, ההגדרות הרגילות שלכם חלות שוב.
| פקודה | מה היא עושה |
|---|---|
caffeinate -i |
ער עד שתעצרו אותו עם Control-C |
caffeinate -i <command> |
מריץ את הפקודה, ער עד שהיא מסתיימת |
caffeinate -i -t 3600 |
ער במשך 3,600 שניות (שעה) |
caffeinate -i -w <pid> |
ער עד שהתהליך הזה מסתיים |
caffeinate -d |
משאיר את הצג דולק |
הסוכן של tidy-recipes רץ באפליקציית שולחן עבודה, ולכן אי אפשר להפעיל אותו דרך caffeinate. במקום זה אתם מריצים caffeinate -i -t 3600, שעה בשביל 40 דקות עבודה, ומשאירים את חלון המסוף פתוח. עמודת PID במנטר הפעילות (Activity Monitor) מראה את המזהה עבור -w, ו־man caffeinate מפרט את כל האפשרויות.
3. שנו את הגדרות השינה ב־Mac לסשנים ארוכים יותר
אם סוכנים רצים שעות או כל יום, עדיף לשנות הגדרה. המדריך של Apple להגדרות שינה והתעוררות מראה איפה:
- מחשב נייד: ״הגדרות המערכת״ > ״סוללה״ > ״אפשרויות״, הפעילו את ״מניעת כניסה אוטומטית למצב שינה בעת שימוש בספק הכוח כאשר הצג כבוי״.
- מחשב שולחני: ״הגדרות המערכת״ > ״צריכה״, הפעילו את ״מניעת כניסה אוטומטית למצב שינה כאשר הצג כבוי״.
Apple מציינת שמניעת מצב שינה עלולה להגדיל את צריכת האנרגיה. האפשרות ״התעורר בעת גישה מהרשת״ רק מאפשרת ל־Mac להתעורר לזמן קצר עבור שירותים משותפים. היא לא תשאיר סוכן פועל.
ב־Mono ל־Mac, תחת ״הגדרות״ > ״קוד״ יש את האפשרות ״מניעת שינה בזמן שסוכן עובד״, שמופעלת כברירת מחדל. היא דוחה שינה בחוסר פעילות עד שהסוכן מסיים את התור שלו. סגירת המכסה עדיין מכניסה את ה־Mac למצב שינה. האפשרות ״המשך עבודה כשהמסך נעול״, שגם היא מופעלת כברירת מחדל, מאפשרת לסשנים פתוחים להמשיך לפעול כשהמסך נעול. ל־Mono אין הגדרת שינה ב־Windows.
4. השאירו מחשב Windows ער
ב־Windows 11, פתחו את ״התחל״ > ״הגדרות״ > ״מערכת״ > ״הפעלה וסוללה״ (Power & battery) > ״זמן קצוב למסך, שינה ותרדמה״ (Screen, sleep, & hibernate timeouts), כפי שמראה המדריך של Microsoft להגדרות צריכת חשמל. במחשב שולחני, ייתכן שהדף ייקרא ״הפעלה״ (Power).
תחת ״העבר את המכשיר שלי למצב שינה אחרי״ (Make my device sleep after), רשמו את הערך של מצב חיבור לחשמל, ואז הגדירו אותו ל״אף פעם״ (Never) או לזמן ארוך בהרבה מהמשימה.
למחרת אתם מריצים משימה דומה של 40 דקות במחשב ״den-pc״, מחשב שולחני עם Windows שנכנס למצב שינה אחרי 30 דקות. זה קצר מהמשימה, אז אתם רושמים 30 דקות ובוחרים ״אף פעם״.
כדי להחזיר אחר כך את הטיימר מטרמינל, powercfg מקבל את הערך בדקות: powercfg /change standby-timeout-ac 30.
5. הכינו משימה ארוכה שתמשיך לרוץ בלעדיכם
מלאו את הטבלה לפני שאתם יוצאים.
| בדיקה | MacBook Air | den-pc (Windows) |
|---|---|---|
| חשמל ומכסה | מטען מחובר, מכסה פתוח | מחשב שולחני, מחובר לחשמל |
| מה משאיר אותו ער | caffeinate -i -t 3600 |
שינה מוגדרת ל״אף פעם״ |
| ערך לשחזור | אין | 30 דקות |
| עדכונים מותקנים, אין הפעלה מחדש שממתינה | כן | כן |
| הסוכן רץ, ההתראות נבדקו, הטלפון טעון | כן | כן |
עקבו אחרי הצעד הראשון של הסוכן, כדי שהוא לא ייעצר בבקשת התחברות או בגלל כלי חסר. הגדירו התראות מסוכן הקוד כדי לדעת מתי הוא מסיים או צריך אישור, והשתמשו במדריך לעבודה עם סוכני קוד מהטלפון כדי לעקוב אחריו מהטלפון.
6. החזירו את ההגדרות כשהמשימה מסתיימת
- עצרו את
caffeinateעם Control-C, או חכו שהזמן שלו ייגמר. - כבו כל אפשרות שינה ב־Mac שהפעלתם.
- ב־Windows, החזירו את זמן השינה שרשמתם (30 דקות ב־den-pc).
אחר כך ודאו ששום דבר לא ממשיך להשאיר את המחשב ער. ב־Mac, הריצו pmset -g assertions במסוף ובדקו את הרשימה תחת ״Listed by owning process״ (לפי התהליך הבעלים). caffeinate לא אמור להופיע שם, אבל רשומות של שמע או של המערכת הן רגילות. ב־Windows, הריצו powercfg /requests בטרמינל שנפתח כמנהל מערכת. הפקודה מפרטת את האפליקציות ואת מנהלי ההתקנים שמשאירים את הצג דולק או את המחשב ער.
לבסוף, בדקו את השינויים של הסוכן לפני שאתם עושים commit למשהו. Mono עדיין לא זמין, אבל אפשר להצטרף לרשימת ההמתנה.
