Uzun bir komut çalıştırın, bitince Mac'inizin uykuya dalmasına izin verin

Henry AGI
6 dk okumaJun 2026
Uzun bir komut çalıştırın, bitince Mac'inizin uykuya dalmasına izin verin

Bir komutu çalıştırıp bittiği an Mac'inizin uykuya dalmasına izin vermek için yerleşik araç caffeinate'tir: komutunuzu bir argüman olarak verin (caffeinate -i your-command) ve macOS, Mac'i tam olarak o sürecin ömrü boyunca uyanık tutar, sonra otomatik olarak bırakır — ayrı bir açma/kapama adımı yok. Bu gerçekten kullanışlı ve hiçbir şeye mal olmuyor. Yetersiz kaldığı yer, komut çıktıktan sonraki her şey: caffeinate size işin başarılı olup olmadığını söylemez, çalışırken pilinizi izlemez ve bittiğinde sizi bilgilendirmez. LidRun'un Run & Watch a Command özelliği (ve CLI ikizi lidrun --) aynı yaşam-döngüsü bağlamasını yapar, sonra buna çıkış kodunu, süreyi, bir bildirimi ve Mac'in işi çalıştırmaya devam etmemesi gerektiğinde işi gerçekten durduran bir güvenlik denetleyicisini ekler.

Manuel uyanık tutmanın sorunu

Alışılmış ritüel, doğru sırayla hatırlamanız gereken iki adımdan oluşur: uyanık tutmayı açın, işi başlatın ve daha sonra, umulur ki, iş bitince uyanık tutmayı kapatın. Kaçırılan genelde ikinci adımdır.

LidRun
Timeline comparing manual keep-awake toggling, which leaves the Mac awake after a job ends, against LidRun's command-length keep-awake that releases the instant the job exits
Manuel keep-awake, iş bitişi ile anahtarın kapatılması arasında bir boşluk bırakır. Run & Watch bu boşluğu otomatik olarak kapatır.

Unutursanız, kırk dakikalık bir iş bittikten sonra Mac saatlerce uyanık kalır — pilde tüketim yapar ya da masada boşuna dinlenmeden bekler. Çok erken kapatırsanız işi yarıda kesersiniz. İkisi de asıl istediğiniz şey değil; istediğiniz, kontrollerin izin verdiğinden çok daha basitti: bu tek komut çalışırken Mac'i uyanık tutmak, sonra durdurmak. Uyanık kalma durumunu elle çevrilen bir anahtara değil, işin kendi ömrüne bağlamak.

Ücretsiz, yerleşik yol: caffeinate

Herhangi bir uygulamaya yönelmeden önce, macOS'un bu temel numarayı zaten ücretsiz yaptığını bilmekte fayda var. caffeinate her Mac'te hazır gelir ve kendi man sayfasına göre: bir yardımcı program belirtildiğinde, caffeinate bu program adına iddialar (assertion) oluşturur ve bu iddialar programın çalışma süresi boyunca kalıcı olur. Kendi örneği tam olarak bu kalıptır: caffeinate -i make, make'i fork'lar, çalıştığı sürece bir idle-sleep iddiası tutar ve süreç bittiğinde bırakır. Kendi işinizi geçirin — caffeinate -i ./run-migrations.sh ya da caffeinate -i npm test — ve hiçbir kurulum yapmadan LidRun'un sunduğu komut-uzunluğunda uyanık tutmanın aynısını elde edersiniz.

Bayraklar önemlidir: -i idle sleep'i önler (en sık kullanılan durum), -d ekranı da açık tutar, -s sistem uykusunu tamamen engeller ama yalnızca AC gücünde çalışır, -m ise diskin durmasını engeller. Hiçbir bayrak vermeden çıplak bir caffeinate your-command bile varsayılan olarak idle sleep'i önler. Gözünüzün önünde çalışan bir ön plan işi için gerçekten sağlam bir araç.

caffeinate'in dokunmadığı şey kapalı kapaktır. İddiaları idle sleep'i durdurur, ama harici ekran bağlı olmayan bir Mac'te kapağı fiziksel olarak kapattığınız anda macOS'un tetiklediği zorunlu uykuyu değil. Buradaki geleneksel ücretsiz çözüm klasik clamshell kurulumudur — harici monitör artı harici klavye/fare, kapak kapalı, Mac çalışmaya devam eder çünkü macOS onu fiilen dock'lanmış gibi görür. Diğer kaldıraç — LidRun'un kendi Closed-Lid modunun perde arkasında çağırdığı şey — belgelenmemiş ama iyi bilinen sudo pmset disablesleep 1 komutudur: bir şey onu tekrar 0'a çevirene kadar uykuyu tamamen engelleyen sistem geneli bir bayrak.

İlgili kılavuzLidRun CLI: Mac'i terminalden uyanık tutmak

Ücretsiz yolun yetmediği yer

İş bittiğinde caffeinate size hiçbir şey söylemez. Ne bir çıkış kodu basılır, ne süre, ne de bildirim — yine bir terminal sekmesini izlemeye ya da caffeinate -i ./job.sh; echo "exit $?" gibi kendi wrapper'ınızı yazıp sonra kontrol etmeyi hatırlamaya geri dönersiniz. Kırk dakikalık bir migration için bu ufak bir can sıkıntısı; ama yatmadan önce başlattığınız gece boyu süren bir export için, sabah net bir cevapla değil, bir terminal penceresini kaydırarak uyanmak demek.

LidRun
Comparison table of caffeinate, pmset disablesleep, third-party toggle apps, and LidRun's Run & Watch a Command across exit-code reporting and battery/thermal auto-stop
caffeinate zaten ücretsiz şekilde bir komutun yaşam süresine bağlanır — LidRun ise caffeinate'te olmayan raporu ve güvenlik amaçlı otomatik durdurmayı ekler.

caffeinate ayrıca pil durumunuz ya da Mac'inizin termal durumu hakkında hiçbir şey bilmez. Süreç ne kadar çalışırsa iddiayı o kadar körlemesine tutar — ki tam olarak istediğiniz şey de budur, ama bu, pilde çalışır bırakılıp gece boyu izlenmeyen bir caffeinate -i işinin, ayarladığınız düşük-pil eşiğini sizin için izleyen kimsenin olmadığı anlamına gelir. pmset disablesleep daha da keskindir: sudo gerektirir, sistem geneli çalışır (yalnızca sizin işinizi değil, her şeyi uykudan alıkoyar) ve bir şey onu açıkça geri almadıkça 1 olarak kalır — bu adımı atlarsanız, siz hatırlayana kadar Mac hiçbir şey için uykuya geçmez.

Üçüncü taraf açma/kapama uygulamaları — Amphetamine, KeepingYouAwake, Lungo, orijinal Caffeine — göz ardı etmek yerine adil biçimde anmaya değer. Özellikle Amphetamine zengin bir tetikleyici sistemine sahip: uygulama açılışında, bir zamanlamaya göre ya da pil seviyesine göre etkinleşebilir, ki bu LidRun'un burada sunduğundan çok daha yapılandırılabilir. KeepingYouAwake ve Lungo bilinçli olarak minimal menü çubuğu anahtarlarıdır; Caffeine ise tek tıkla çalışan klasik. Hiçbiri belirli bir komutun çıkış kodunu izlemez — kendi başlatıp kendi durdurduğunuz kalıcı bir uyanıklık durumunu, ya da işinizin gerçekten hâlâ çalışıp çalışmadığıyla ilgisi olmayan bir tetikleyiciyi yönetirler. Bu, ilk bölümdeki 'kapatmayı unutma' sorununun aynısı, sadece daha güzel bir menü çubuğu simgesiyle.

Komutu bunun yerine LidRun'a bırakın

Run & Watch a Command, caffeinate modelini tersine çeviren bir Pro özelliğidir: uyanık kalma durumunu siz yönetmek yerine, komutu LidRun'a bırakırsınız ve durumu o sizin için yönetir. Perde arkasında komutunuzu Terminal'inizin kullandığı aynı login shell üzerinden (/bin/zsh -l -c) başlatır, böylece PATH araçları — Homebrew, pyenv, nvm, claude ya da ollama'nın çözmesi gereken her ne ise — komutu kendiniz yazmış olsaydınız çalışacakları gibi çalışır. Komutun tüm ömrü boyunca uyanık tutmayı sürdürür ve çıkış yaptığı an bırakır — LidRun'un uygulamanın her yerinde verdiği aynı söz: komut çalışıyor → uyanık kal, komut bitti ya da güvensiz → bırak.

Çalışırken LidRun, çıktının döner bir kuyruğunu yakalar — son 200 satır, menü çubuğu penceresinde canlı olarak görünür — böylece hâlâ hayatta olduğunu umarak çıplak bir terminale bakıp durmazsınız. Bu canlı bir görünümdür, kayıtlı bir log dosyası değildir; sonrasında tam bir dökümana ihtiyacınız olursa, normalde yaptığınız gibi komutun kendi çıktısını bir dosyaya yönlendirin. Çalıştıracak gerçek bir şeyi olmayan çıplak bir yorumlayıcı yazarsanız (betiksiz python3 gibi), runner sıfır saniyelik bir çıkışı gerçek bir işmiş gibi göstermek yerine bunu işaretler.

İş bittiğinde, en çok önem taşıyan kısmı elde edersiniz: çıkış kodu ve ne kadar sürdüğü, sade biçimde formatlanmış (12m 34s, 1h 23m). Her zaman yerel bir bildirim alırsınız; bir push sağlayıcı kurduysanız — ntfy.sh (ücretsiz) ya da Pushover — telefonunuza da ulaşır, Pro'da ise bunu ayrıca Telegram, Discord, Slack ya da genel bir webhook URL'sine dağıtabilirsiniz. Pilde bir oturum başlatırsanız, LidRun ayarladığınız otomatik durdurma eşiğini (varsayılan %20) sonradan öğrenmenize bırakmadan baştan söyler.

Bu aynı zamanda çıplak bir caffeinate tutuşuyla arasındaki dürüst güvenlik farkıdır: pil o eşiğin altına düşerse ya da Mac kritik termal baskıya girerse, LidRun iddiayı sessizce bırakıp en iyisini ummaz — çalışan komuta, Stop'a tıklamakla aynı, gerçek bir sonlandırma sinyali gönderir. Bu yumuşak bir öneri değil, gerçek bir kesintidir, dolayısıyla kör bir wake lock'tan daha korumacıdır — yine de kendiliğinden bitmesine birkaç dakika kala durdurulan bir iş, yine de bir kesintidir, çalışmanın tamamlanacağının garantisi değildir. Ve caffeinate gibi bu da Mac'i idle sleep boyunca uyanık tutar, fiziksel olarak kapalı bir kapak boyunca değil — kapak kapanacaksa bunu Closed-Lid modu (ya da harici bir ekran) ile birlikte kullanın.

Aynısı komut satırından

Terminalde yaşıyorsanız, lidrun -- <command> [args...] aynı yaşam-döngüsü bağlamasını yapar ve Run & Watch'ın aksine ücretsiz ve tamamen bağımsızdır — LidRun uygulaması çalışmıyor olsa bile çalışır, çünkü sarmalanan süreç için kendi kısa ömürlü IOKit iddiasını tutar ve süreç çıktığında bırakır. lidrun -- ./run-migrations.sh ya da lidrun -- npm test, komutu doğrudan yazmakla tamamen aynı okunur, çünkü perde arkasında da öyledir — aynı login shell, aynı PATH çözümlemesi. Ctrl-C, herhangi bir ön plan işi gibi onu da durdurur.

LidRun
Terminal screenshot of lidrun -- npm test showing normal command output and the exit code and duration reported when it finishes
lidrun -- npm test — Mac tam olarak bu kadar süre uyanık kalır, ardından terminal size nasıl sona erdiğini gösterir.

Bağımsız olduğu için açıkça söylemek dürüst olur: lidrun -- pil yüzdenizi ya da termal durumu kendisi kontrol etmez — bu denetleyici, uygulamanın normal güvenlik ayarlarına bağlı olan GUI Run & Watch özelliğinde yaşar. Pilde, saatler süren bir iş için, işi arka plana atıp uzaklaşmadan önce bunu bilmekte fayda var; her iki yol için de priz gücü daha güvenli seçimdir.

Tek bir uyanık-tutma oturumu altında birden fazla komutu zincirlemek isterseniz bilmeye değer gerçek bir tuzak var: her şeyi tek bir shell argümanı olarak tırnak içine alın. lidrun -- 'npm test && npm run build' doğru çalışır — her iki komut da tek bir sarmalanmış oturum altında koşar. Bunun yerine ekstra bir shell'e sarmak, lidrun -- bash -c 'npm test && npm run build' gibi, çalışmaz: LidRun, login shell üzerinden yeniden çalıştırmadan önce argüman listesini düz boşluklarla yeniden birleştirir, bu da iç tırnakları sessizce düşürür ve komutun bir kısmını atlayabilir. Güvenilir kalıp, tek argüman olarak tırnaklamaktır. Her iki yol da komutunuzun kendi çıkış kodunu kendi çıkış kodu olarak döndürür, dolayısıyla bir betiğin &&/|| zincirine ya da bir $? kontrolüne, komutu doğrudan çalıştırmışsınız gibi doğrudan girer.

CLI mi GUI runner mı — hangisi

Zaten komutu yazmak üzereyseniz, bir betikte ya da terminal odaklı bir workflow'da istiyorsanız, ya da Pro'ya ihtiyacınız yoksa (ya da yoksa), CLI'a yönelin. Çıkış kodu hemen kendi shell'inize döner ve açılacak ya da ayarlanacak hiçbir şey yoktur.

Pil/termal otomatik durdurmanın işi gerçekten izlemesini istediğinizde — sadece bir iddiayı tutup en iyisini ummak yerine — ya da bir terminal penceresi açık tutmadan telefon bildirimi istediğinizde, ya da menü çubuğunda canlı bir çıktı kuyruğu bir terminal sekmesinden daha rahat geldiğinde GUI Run & Watch a Command'a yönelin. Bir Pro lisansına mal olur; o güvenlik denetleyicisi ve bildirim dağıtımı dışında her şey için CLI yolu ücretsiz eşdeğerdir.

Hangi yolu seçerseniz seçin, varış noktası aynıdır: iş biter, sonuç bilinir ve Mac, kimsenin geri çevirmediği bir anahtar yüzünden uyanık bırakılmak yerine uykuya dalmakta serbesttir.

Bunun yeri neresi

Başlatıp sonra başka bir şeyle uğraşmaya gittiğiniz işleri düşünün: temiz biçimde tamamlandığını doğrulamak istediğiniz uzun bir veritabanı migration'ı, göz kulak olmak istemediğiniz yirmi dakikalık bir tam test paketi, yatmadan önce başlatılan ve sabaha kadar bitmesi gereken bir veri export'u. Bunların hepsi için, sondaki rapor değerin yarısıdır — çıkış kodunu ve süreyi bilmek, çıktıyı kaydırmadan migration'ın uygulandığını, paketin geçtiğini, export'un gerçekten bittiğini söyler.

GUI yolunda, uygulamadaki her şeyle aynı güvenlik sınırı içinde çalışır: ayarladığınız pil eşiğini geçin ya da kritik termal baskıya girin, LidRun donanımı zorlamak yerine komutu doğrudan durdurur. CLI yolunda bu denetleyici yerleşik değildir, dolayısıyla gözetimsiz bir gece boyu çalıştırma için, hangi yolu kullanırsanız kullanın priz gücü ve sert, havalandırmalı bir yüzey yine de doğru seçimdir — bu, uzun ve gözetimsiz bir çalıştırmada riski azaltmaya yardımcı olur; donanım ne yaparsa yapsın işin hayatta kalacağının garantisini vermez.

Kapak kapalı uykusuyla boğuşmak yerine deneyin

LidRun, işinizi kapak kapalıyken, pil ve sıcaklık koruması yerleşik biçimde çalışır tutar.

macOS için indir

LidRun zaten sizde mi? Kurulum rehberini okuyun →

LidRun'u yeni mi tanıdınız? Fiyatlara bakın →

Sık sorulanlar

LidRun, Mac'i komutun tamamı boyunca uyanık tutar mı?

Evet. Run & Watch a Command, komutun tüm ömrü boyunca uyanık tutmayı sürdürür ve komut çıktığı anda bırakır, böylece Mac tam olarak işin çalıştığı süre kadar açık kalır — caffeinate'e bir komut geçirdiğinizde size ücretsiz verdiği aynı davranış, artı caffeinate'te olmayan raporlama ve güvenlik denetleyicisi.

Komut bittiğinde bana ne söyler?

Çıkış kodunu ve süreyi (12m 34s ya da 1h 23m gibi formatlanmış) bildirir ve her zaman yerel bir bildirim gönderir. Bir push sağlayıcı (ntfy.sh ya da Pushover) ayarladıysanız telefonunuza da ulaşır, Pro'da ise bunu ayrıca Telegram, Discord, Slack ya da genel bir webhook'a dağıtabilirsiniz.

Komut satırı eşdeğeri var mı, ücretsiz mi?

Evet — lidrun -- your-command çalıştırın, LidRun o komut için kısa ömürlü bir uyanık-tutma iddiası tutar ve komut çıktığında bırakır. Ücretsiz ve bağımsızdır, uygulama çalışmadan bile işler. GUI'deki Run & Watch a Command özelliği (menü çubuğu çıktı kuyruğu, bildirimler, pil/termal otomatik durdurma) bir Pro özelliğidir; CLI wrapper'ı o güvenlik denetleyicisi eksik, ücretsiz eşdeğeridir.

Kapak kapalıyken Mac'i uyanık tutar mı?

Hayır, tek başına değil. Hem GUI hem de CLI yolu idle sleep'i önler, harici ekran bağlı olmadan kapağı fiziksel olarak kapattığınızda macOS'un tetiklediği zorunlu uykuyu değil. Kapak kapalı bir iş için, Run & Watch'ın üzerine Closed-Lid modunu ekleyin (ya da harici bir ekran kullanın, klasik clamshell kurulumu).

Gece boyunca pil azalırsa ne olur?

GUI yolunda, ayarladığınız pil eşiğini (varsayılan %20) geçmek ya da kritik termal baskıya girmek, LidRun'un yalnızca uyanık-tutma iddiasını bırakıp işi arka planda korumasız çalışır bırakması yerine, çalışan komutu gerçekten sonlandırmasını sağlar. CLI'daki lidrun -- wrapper'ında böyle bir kontrol yerleşik değildir — pil seviyesinden bağımsız olarak sürecin ömrü boyunca sade bir iddia tutar — dolayısıyla gözetimsiz bir gece boyu iş için her iki yolda da priz gücü daha güvenli seçimdir.

Komutum takılırsa bir zaman aşımı var mı?

Her iki yolda da yerleşik bir zaman aşımı yoktur. Takılan bir komut, çıkana kadar, siz durdurana kadar (GUI'de Stop düğmesi, CLI'da Ctrl-C) ya da — yalnızca GUI yolunda — pil/termal güvenlik denetleyicisi sizin için sonlandırana kadar iddiayı tutmaya devam eder.

Tek bir uyanık-tutma oturumu altında birden fazla komutu zincirleyebilir miyim?

Evet, her şeyi tek bir argüman olarak tırnak içine alırsanız: lidrun -- 'npm test && npm run build' her ikisini de tek bir sarmalanmış oturum altında doğru şekilde çalıştırır. Bunun yerine ekstra bir shell'e sarmak, lidrun -- bash -c '...' gibi, argüman listesinin nasıl yeniden birleştirildiğine bağlı olarak komutun bir kısmını sessizce düşürebilir — bileşik komutu iç içe bir shell'e argüman olarak değil, tek bir argüman olarak tırnaklayın.

Ne kadar çıktı yakalıyor?

GUI'nin canlı görünümü, çıktının son 200 satırının döner bir kuyruğunu gösterir — işin hayatta olduğunu doğrulamak ve son ilerlemeyi görmek için yeterlidir, ama bu canlı bir görünümdür, kayıtlı bir log dosyası değildir. Sonrasında tam bir döküman gerekiyorsa, komutun kendi çıktısını bir dosyaya yönlendirin.

LidRun'ın size uygun olup olmadığını merak mı ediyorsunuz?

Araştırmayı ChatGPT, Claude veya Perplexity'e bırakın — aşağıya tıklayın ve yapay zekânın LidRun hakkında gerçekten ne düşündüğünü görün.

Uzun Bir Komutu Çalıştırın, Bitince Mac'inizi Uykuya Bırakın