Bir bash betiği çalışırken bir Mac'in uyumasını durdurun, ardından tamamlandığında normal olarak uyumasına izin verin


13

Mac'imin gece boyunca uyanmasını ve onu yedeklemek için bir rsync çalıştırmasını sağladım. Bu, Enerji Tasarrufu> Zamanlama ile yapılandırılır.

Ancak bir şey yapmadan önce geri uykuya gidiyor gibi görünüyor, bu yüzden rsync çalışır bash betiğin yürütülmesi sırasında uyku durdurmanız gerekir.

En iyi yol (mümkünse) uyku zaman aşımı "Asla" veya rsyncs önce çok uzun bir zaman aşımı ayarlamak ve sonra tamamlandıktan sonra normale geri ayarlamak için bir komut vermek olduğunu düşündüm. Bunu yapmak için daha iyi bir çözüm var mı?


Süper kullanıcıda mı olmalı?
Kimvais

Yanıtlar:


18

Caffeinate

Örneğin:

caffeinate -i rsync -avz someuser@somehost:somefolder /some/local/folder

Man sayfasından:

EXAMPLE
     caffeinate -i make
        caffeinate forks a process, execs "make" in it, and holds an
        assertion that prevents idle sleep as long as that process
        is running.

Ayrıntılar man caffeinateiçin bakınız.


11

Mac OS X 10.8 (Mountain Lion) ve üstü

caffeinateKomutu kullanın . Ayrıntılar için Nathan Long'un cevabına veya man caffeinatebakınız.

Mac OS X 10.7 (Lion) ve öncesi

Manuel sayfaya gömülüdür, ancak pmset uykuyu önlemek için çok basit bir moda sahiptir. Komutu uygularsanız pmset noidle, Mac'iniz bu işlem sona erene kadar uyanık kalacaktır. Bir komut dosyasında nasıl kullanılacağı aşağıda açıklanmıştır:

# launch process to prevent sleep and move it to the background
pmset noidle &
# save the process ID
PMSETPID=$!

... do stuff here ...
... don't fall asleep ...
... watch out for that tree!
... ok we're free and clear now ...

# kill pmset so the computer can sleep if it wants to
kill $PMSETPID

Bu, root ayarlarınızı ve (iyi bir vatandaş olmak istediğinizi varsayarak) mevcut ayarları saptamanın ve işiniz bittiğinde bunları değiştirmenin bir yolunu gerektiren uyku ayarlarınızı değiştirmek için pmset kullanmaktan daha iyidir.


2
pmset noidlekullanımdan kaldırıldı: man sayfası şöyle diyor: This argument is deprecated in favor of caffeinate(8). Cevabımı gör.
Nathan Long

4

Deneyin

man pmset

:-)

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.