caffeinate neden closed-lid AI workflow'ları için yeterli değil

Hayır — caffeinate yalnızca boşta (idle) uykuyu engeller; kapağı kapatmak ise tamamen farklı bir uyku türünü tetikler. Sonuç olarak, başında kimse yokken çalışan bir AI ajanı veya model işi, siz kapağı kapatıp uzaklaştığınız anda ölebilir. Bu yazıda bu boşluğun neden var olduğunu, onu kapatan ücretsiz komutu, o komutun taşıdığı riski ve daha güvenli bir closed-lid workflow'un üstüne tam olarak ne eklediğini anlatıyoruz.
caffeinate gerçekte neyi engeller
caffeinate, macOS ile birlikte /usr/bin/caffeinate yolunda gelen küçük ve güvenilir bir araç. caffeinate -i çalıştırdığınızda, sistemin boşta uykuya geçmesini engelleyen bir assertion (iddia) oluşturur; -d ekranı açık tutar; -s sistem uykusunu kapalı tutar, ama yalnızca Mac AC gücündeyken; -m ise diskin boşta uykuya geçmesini durdurur. Bir komutu onunla sarmalayın — caffeinate -i make — ve bir flag belirtmezseniz caffeinate sizin için -i varsayar, o süreç çalıştığı sürece assertion'ı tam olarak elinde tutar.
Perde arkasında bu, PreventUserIdleSystemSleep gibi bir assertion türü isteyen bir IOPMAssertionCreateWithName çağrısıdır — LidRun'ın kendi kapak-açık Keep Awake modunun da üzerine kurulu olduğu aynı düşük seviyeli ilkel (primitive). Bu, caffeinate'e bir eleştiri değil; hedeflediği şey için doğru araç, doğru şekilde inşa edilmiş.
Uzun bir build, büyük bir indirme, bir test paketi ya da kapak açıkken gece boyu süren bir Codex veya Claude Code çalıştırması için o tek satır gerçekten yeterli. Daha ağır bir şeye başvurmak için hiçbir sebep yok.
Dikkat edilmesi gereken kelime idle (boşta). caffeinate, açık bir dizüstü bilgisayarın başından ayrıldığınızda ve macOS sizin onu kullanmadığınıza karar verdiğinde devreye giren uykuyu engeller. Bu, belirli bir uyku türü — hepsi değil.
Kapalı bir kapak neden farklı bir sorun
Kapağı kapatmak boşta uykuyu tetiklemez — clamshell uykusunu tetikler; bu, ayrı ve daha düşük seviyeli bir macOS davranışıdır. Harici bir ekran, AC gücü ve bir klavye veya fare gerçek bir kapalı-ekran masaüstünü aktif olarak sürmüyorsa, macOS kapak kapandıktan saniyeler içinde makineyi askıya alır — assertion olsun ya da olmasın.


IOPMAssertionCreateWithName tabanlı hiçbir assertion o yola ulaşmaz — ne caffeinate'inki, ne de aynı ilkel üzerine kurulu başka bir uygulamanınki. caffeinate'in en güçlü flag'i olan -s bile, kendi man sayfasında açıkça "yalnızca sistem AC gücünde çalışırken geçerlidir" diye sınırlandırılmıştır ve yine de kapak hakkında hiçbir şey söylemez.
Böylece giderek yaygınlaşan senaryo — bir ajanı veya fine-tune işini başlatıp dizüstü bilgisayarı kapatıp başka bir odaya geçmek — çalışmayı kapak kapanır kapanmaz askıda bırakır. caffeinate hâlâ sadakatle assertion'ını tutmaya devam eder; ama kapak yine kazanır, çünkü idle uykusu ile clamshell uykusu iki farklı soruyu yanıtlıyor.
İlgili kılavuzmacOS'ta kext olmadan closed-lid moduÜcretsiz çözüm: pmset disablesleep
Harici bir ekran olmadan, pilde kapak-kapanma davranışını değiştiren belgelenmiş, herkese açık tek kaldıraç pmset disablesleep ayarıdır. Komut şu: sudo pmset -a disablesleep 1, Mac uykuya geçmeden kapağın kapanmasına izin verir; sudo pmset -a disablesleep 0 ise kapak-kapanma uykusunu normale döndürür.


Elle çalıştırdığınızda yönetici parolanızı ister (-a flag'i onu sistem genelinde uygular) ve hemen etkili olur — yeniden başlatma gerekmez.
Bu, LidRun'ın Closed-Lid modunun perde arkasında çevirdiği asıl mekanizma; tek bir gecelik iş için bunu kendiniz çalıştırmanın hiçbir bedeli yok ve işe yarıyor. Bu tek seferlikse, bu genellikle gerçekten yeterli.
Bunu elle yapmanın riski — ve diğer uyanık-tutma uygulamalarının neden aynı duvara çarptığı
Buradaki püf noktası, pmset disablesleep'in tek başına yapmadığı şey: bu, global ve kalıcı bir ayar. Terminal oturumunuza ya da onu ayarladığınız sürece özgü değil — siz açıkça 0'a çevirene ya da Mac'i yeniden başlatana kadar 1'de kalır. İkinci komutu unutursanız ya da onu çalıştırdığınız terminal penceresi veya uygulama siz fırsat bulamadan çökerse, Mac — çantada boşta dururken bile — siz fark edip elle düzeltene kadar kapak kapalıyken uykuya geçmeyi reddeder.


Kapak kapalıyken, hâlâ uyanık olan bir Mac ısıyı kapak açıkken olduğu gibi atamaz. Hangi aracın disablesleep'i ayarladığından bağımsız olarak, kapalı bir sırt çantasının içinde bir oturum çalıştırmak dikkat edilmesi gereken durumdur — dürüst kural, çalışan bir Mac'i kapalı değil, havalandırılmış tutmaktır.
Bu ayrıca daha güzel bir caffeinate alternatifinin kapatabileceği bir boşluk da değil. Amphetamine, KeepingYouAwake, Lungo ve Caffeine hepsi sağlam, iyi inşa edilmiş menü çubuğu araçları — daha temiz arayüz, oturum zamanlayıcıları, uygulama tetiklemeli kurallar gibi gerçek güçlü yanları var — ama her biri caffeinate'in kullandığı aynı idle-sleep IOKit assertion ilkeli üzerinden çalışıyor. Hiçbiri clamshell uykusunu da geçersiz kılmıyor: pilde kapalı bir kapak, Amphetamine veya KeepingYouAwake altında da tıpkı sade bir caffeinate -i altındaki gibi Mac'i uyutmaya devam ediyor. Bu, o uygulamaların eksik bir özelliği değil — kapak-kapanma uykusunu geçersiz kılmak, daha güzel bir assertion sarmalayıcısı değil, pmset disablesleep yükseltmesini (ya da harici ekranlı bir clamshell kurulumunu) gerektiriyor.
Daha güvenli bir closed-lid AI workflow'unun gerçekte neye ihtiyacı var
disablesleep'i elle çevirmek bir işi gece boyunca götürür, ama kapalı, pilde ve muhtemelen başında kimse yokken çalışan bir şey için "ne olursa olsun uyanık kal" yanlış bir hedef. Bu ayarın üstüne gerçekten ihtiyaç duyduğu şey, güvenilir bir temizlik ve pile ile ısıya saygılı sınırlar.


Temizlik konusunda: LidRun, disablesleep'i etkinleştirmeyi her durdurma, çıkış ve normal sonlandırmada onu yeniden devre dışı bırakmakla eşleştirir ve — ayrıcalıklı yardımcısını onayladıktan sonra — bunu her seferinde yönetici parolası istemeden yapar. Uygulama temizlik yapamadan sonlandırılırsa, küçük bir heartbeat dosyası Closed-Lid'in etkin olduğunu kaydeder; LidRun bir sonraki açılışında bu artakalan durumu kontrol eder ve disablesleep'i 0'a sıfırlar. Bu sıfırlama, çökme anında değil bir sonraki açılışta gerçekleşir — varsaymak yerine bilinmesi gereken bir ayrıntı.
Pil konusunda: keep-awake, sizin belirlediğiniz bir eşiğin altında otomatik olarak durur — varsayılan %20, %15 ile %50 arasında ayarlanabilir. Bunun altında, otomatik-durdurma ayarından bağımsız olarak çalışan ayrı bir acil durum zorla-uyutma tabanı bulunur — varsayılan %4, %4 ile %8 arasında ayarlanabilir — çünkü macOS'un pil tamamen bitmeden uykuya geçmeyi gerçekten tamamlayabilmesi için biraz paya ihtiyacı var.
Isı konusunda: macOS'un kendi kaba termal sinyali çipin kritik derecede ısındığını bildirdiğinde, LidRun varsayılan olarak Closed-Lid modunu kapatır ve nedenini size söyler — Mac çok ısındı, kapağı açın ya da hava akışını iyileştirin — kapalı, hava almayan bir Mac'in pişmeye devam etmesine izin vermek yerine. Bu bir geri adım, kapalı bir Mac'in aşırı ısınamayacağı iddiası değil; alttaki kural hâlâ çalışan bir Mac'i havalandırılmış tutmak.
Ayrıca, assertion'ın yalnızca fişe takılıyken var olmasını ya da sizin durdurmayı hatırlamanıza güvenmek yerine sabit bir süre sonunda kendiliğinden sona ermesini istediğiniz çalışmalar için yalnızca-şarjda ve zamanlayıcı modları da var. Hepsi bir araya geldiğinde vaadin şekli şu: ajan çalışıyor, uyanık kal; ajan bitti ya da çalışma güvensiz hale geldi, bırak ve Mac'in uyumasına izin ver. Pil ve termal sensörle tartışan kör bir wake lock değil — ikisi anlaşamadığında güvenlik, rahatlığa karşı kazanır.
caffeinate'i (veya Amphetamine'i) LidRun ile birlikte kullanmak
Bu hâlâ caffeinate'e karşı LidRun meselesi değil. caffeinate, inşa edildiği iş için mükemmel ve birçok workflow onun tek satırından fazlasına asla ihtiyaç duymaz — kapak-açık uyanık tutma için daha güzel bir menü çubuğu arayüzüyle Amphetamine, KeepingYouAwake veya Lungo için de aynısı geçerli.
Kapağı açık tutuyorsanız, caffeinate -i (ya da zaten beğendiğiniz o uygulamalardan biri) çoğu zaman en basit cevap. Kapağı uzun AI ve geliştirme çalışmalarında kapatıyorsanız ve bunun etrafında pil ve termal koruma önlemleri istiyorsanız, LidRun'ın doldurduğu boşluk tam olarak bu.
Pek çok kişi ikisini birden kullanıyor: terminalde hızlı, komuta özgü görevler için caffeinate; sistem genelindeki bir ayarı geri kapatmayı unutmanın gerçekten önemli olduğu, başında kimsenin olmadığı closed-lid çalışmalar için LidRun.
LidRun, işinizi kapak kapalıyken, pil ve sıcaklık koruması yerleşik biçimde çalışır tutar.
LidRun zaten sizde mi? Kurulum rehberini okuyun →
LidRun'u yeni mi tanıdınız? Fiyatlara bakın →
Sık sorulanlar
Tek başına değil. caffeinate boşta sistem uykusunu engeller; kapağı kapatmak ise onun yerine clamshell uykusunu tetikler ve buna hiçbir idle-sleep assertion'ı — caffeinate'inki dahil — dokunamaz. Bunun için pmset disablesleep yoluna (ya da gerçek bir clamshell masaüstünü aktif olarak süren harici bir ekrana) ihtiyacınız var.
Hiç de değil. Güvenilir, dahili bir araç ve birçok kapak-açık uyanık tutma ihtiyacı için doğru seçim. Buradaki mesele kalite değil, kapsam: hiçbir zaman kapalı bir kapağı ele almak için inşa edilmedi ve kendi man sayfası da bunu söylüyor — en güçlü flag'i -s bile yalnızca AC gücünde geçerli ve kapaktan hiç bahsetmiyor.
Bu gerçek, belgelenmiş bir komut: kapağı kapatmadan önce 1'e, işiniz bitince tekrar 0'a ayarlayın. İşe yarıyor ve tek bir gecelik iş için elle çalıştırmak sorun değil. Risk şu ki bu global ve kalıcı — siz açıkça kapatana ya da Mac'i yeniden başlatana kadar açık kalır; bu yüzden unutulan bir temizlik ya da siz fırsat bulamadan yaşanan bir çökme, siz fark edip düzeltene kadar Mac'i kapak kapalıyken uyuyamaz halde bırakır.
caffeinate'in gittiğinden daha ileri gitmiyorlar. Aynı idle-sleep assertion ilkeli üzerine kurulu iyi menü çubuğu uyanık-tutma araçları ve hiçbiri pilde clamshell uykusunu geçersiz kılmıyor. pmset disablesleep ya da harici ekranlı bir clamshell kurulumu da devrede olmadıkça, kapalı bir kapak bunların hiçbirinin altında Mac'i uyutmayı sürdürür.
Bir çökmeden sonra bile güvenilir şekilde geri kapatılan bir anahtar; uzun, başında kimsenin olmadığı bir çalışmanın pili tamamen bitirmemesi için bir pil tabanı; kapalı, hava almayan bir Mac'in ısı üretmeye devam etmemesi için bir termal geri adım; ve ideal olarak, onu durdurmak için hafızanıza güvenmemeniz için yalnızca-şarjda veya zamanlayıcı seçenekleri.
Evet. İkisi yan yana gayet iyi duruyor — hızlı, komutla sarmalanmış, kapak-açık görevler için caffeinate; disablesleep temizliğinin ve pil ile termal koruma önlemlerinin önemli olduğu, closed-lid, başında kimsenin olmadığı çalışmalar için LidRun.