Mac uyku komut satırından nasıl önlenir?


12

Uzak bilgisayarda uzun süredir çalışan bir komut dosyası var.

Ssh oturumumu sonlandırmak istemiyorum ve bir kabuk betiği içine girmek gerekir.

Mac'imin komut satırından uykuya dalmasını nasıl önleyebilirim?


3
Hangi OS X sürümü?
nohillside

Yanıtlar:


19

Mountain Lion'da caffeinatekomutu kullanabilirsiniz .

caffeinate -u -t 1000

1000 saniye rölantide kalmayı önler.


1
Ben herhangi bir 'kafeinat' cmdline kombinasyonu (bir tanesi dahil) ne de Mavericks kapak kapatıldığında uyku önleme Caffeine.app ile henüz bir başarı elde etmedi. InsomniaX.app, şimdiye kadar kapak uykusunu engelleyen tek şeydir, ancak henüz çalışan bir cmdline sürümü bulamadı (henüz goo.gl/CU06jb çalışması yapmadı - eski olabilir). Yine de, kapak kapandığında sınırlı, programlanabilir süre boyunca uykuyu reddederken bile ekran şifresi gereksinimini sağlayan bir şey istiyorum ... ve InsomniaX.app da bunu yapmıyor gibi görünüyor.
Johnny Utahh

1
Benzer konular. Yosemite'deyim ve terminalde kafeinat kullanmamıza rağmen, bir süre sonra ekran kararıyor ve tekrar giriş yapmam gerekiyor. Bu bana kafeinin Mac'i uyanık tutmadığını gösteriyor, bu da benim amacım Wifi bağlantısı devam edebilir / ne olursa olsun devam edebilir.
dmonopoly

12

Bu sorunun çözümü istemciyi (Mac'inizi) uyanık tutmak değildir . Bunun gibi yaklaşımları kullanmak vazgeçilmezdir. Ağ bağlantısı kesilirse ne olur? Mac'iniz uyanık olsa bile komut dosyası durur.

kullanım nohup

Uzun süredir çalışan komut dosyanız çağrılırsa eternity.shaşağıdakileri deneyin:

nohup /path/to/eternity.sh > /path/to/output.out &

Artık bağlantıyı bile kapatabilirsiniz ve betiğiniz çalışmaya devam edecektir . &Arka süreç açık bir bağlantı tutmak ve komutları girin böylece. Komut dosyanızdaki tüm çıktıları şu yolla görüntüleyin:

tail -f /path/to/output.out

Komut dosyası yolunuzdaysa ve komut dosyası çıktısının output.outgeçerli dizine yazılmasını istiyorsanız, örneklerdeki yollar isteğe bağlıdır .

Her gün günlerce çalışan komut dosyalarını yönetiyorum. Bunun gibi komut dosyaları terminalden ayrılmalıdır. Neyse ki, nohupbunu başarmak için hatırlanması kolay bir komut çağrısı sağlar - hiçbir şey düşünmeyin .


5
Ayrıca bakınız man screen.

@mankoff - zaten ekran kullanıyorum. Dilimlenmiş bir cinsin keşfinden bu yana en iyi komuttur. ;) Sorunun ana noktası, mac'um uykuya daldığında "bir yere @ ssh" ihtiyacını ortadan kaldırmak - sadece ssh oturumumu sonlandırmak istemiyorum - uzak taraftaki komutum zaten ekranla "korumalı" . ;)
kobame

@ephsmith - soru şuydu: ssh oturumu sonlandırma nasıl ortadan kaldırılır ... ofc nohup uzaktan komutunuzun etkileşimli olmadığı durumlar için güzel. Etkileşimli komutlar için ekran çok daha iyi bir çözümdür. Cevap için yine de teşekkürler.
kobame

1
@ kobame, belki sorunun konusu ve bu ek bilgilerin orijinal sorunuza eklenmiş olması gerekir. Sorunuzdaki ilk satır uzun süren bir komut dosyasına atıfta bulundu. Nohup referansına yol açan etkileşimli olmadığını varsaydım.
ephsmith

@ kobame, bu cevaplardan herhangi biri sorununuzu çözdü mü?
ephsmith

8

Başka bir seçenek de pmset . Çalıştığı pmset noidle sürece uykuyu önlemek için komutu kullanın pmset. Ne yazık ki, içinde pmsetçalışan ayrı bir Terminal penceresi gerektirir . Ancak, diğer seçenek, caffeinateyalnızca belirli bir zaman ayarlamanıza izin verir . Bu nedenle, ikinci bir SSH oturumu açmak mı yoksa bir zaman kısıtlamasıyla mı uğraşmak istediğinizi seçmek meselesidir.

Düzenleme: göre binarybob yorumuna :, aslında böyle arka planda çalıştırabilirsiniz pmset noidle &geri almak için pmsettip fg.


Ayrıca pmsetarka planda çalıştırabilir pmset noidle &ve bu nedenle geçerli komut istemini kullanmaya devam edebilirsiniz. Tip fgalmak için pmsethangi yapabilirsiniz Ctrl + C o işaret, geri
binarybob

@binarybob Oh! Bunu bilmiyordum. Bahşiş için teşekkürler!
daviesgeek

@davisgeek - gerçekten güzel! Bahşiş için teşekkürler.
kobame

1
Bu da IPython dizüstü bilgisayarda çalışır: !pmset noidle- IPython dizüstü bilgisayar ve uzaktan bağlanan bir dizüstü bilgisayar sunan bir masaüstünüz olduğunda çok güzel.
Jason S

1
Bu benim için işe yaramıyor. Başarılı bir şekilde çalışır, "Boşta uykuyu engelleme (çıkmak için ^ C) ..." mesajı görünür, ancak yine de uyku moduna geçer.
Iulian Onofrei

6
caffeinate -i -s /bin/ssh ...

Açıklama:

-i - Boşta uykuyu önleyin.

-s- Sistemin uyumasını önleyin (kapağı kapatsanız bile tamamen). Not: sadece AC gücündeyken çalışır.

/bin/ssh- Sadece yürütmek istediğiniz komutu yazmaya devam edin. sshDoğrudan yerine kullanmak /bin/sshda işe yarayacaktır.

Sonuçlar: sshKomut çalıştığı sürece sisteminiz uyku moduna geçmez .



Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.