Ngăn máy Mac ngủ trong khi tập lệnh bash đang chạy, sau đó cho phép nó ngủ như bình thường sau khi hoàn tất


13

Tôi đã cho máy Mac của mình thức dậy vào ban đêm và chạy rsync để sao lưu. Điều này được cấu hình thông qua Energy Saver> Lịch trình.

Tuy nhiên, dường như nó sẽ quay trở lại giấc ngủ trước khi nó có thể hoàn thành mọi thứ, vì vậy tôi cần phải dừng nó ngủ trong khi thực thi tập lệnh bash mà rsync chạy từ đó.

Tôi đã tìm ra cách tốt nhất (nếu có thể) là ra lệnh đặt thời gian chờ ngủ thành "Không bao giờ" hoặc thời gian chờ rất lâu trước khi nó kết thúc và trở lại bình thường sau khi hoàn thành. Có một giải pháp tốt hơn để làm điều này?


Có nên dùng superuser?
Kimvais

Câu trả lời:


18

Caffein

Ví dụ:

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

Từ trang người đàn ông:

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.

Xem man caffeinateđể biết chi tiết.


11

Mac OS X 10.8 (Sư tử núi) trở lên

Sử dụng caffeinatelệnh. Xem câu trả lời của Nathan Long hoặc man caffeinateđể biết chi tiết.

Mac OS X 10.7 (Lion) trở về trước

Nó được chôn trong trang hướng dẫn, nhưng pmset có chế độ rất đơn giản để ngăn chặn giấc ngủ. Nếu bạn thực thi lệnh, pmset noidlemáy Mac của bạn sẽ được giữ cho đến khi quá trình đó bị giết. Đây là cách sử dụng nó trong một kịch bản:

# 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

Điều này tốt hơn so với sử dụng pmset để thay đổi cài đặt giấc ngủ của bạn, yêu cầu quyền truy cập root và (giả sử bạn muốn trở thành một công dân tốt) một số cách phát hiện các cài đặt hiện tại và thay đổi chúng trở lại khi bạn hoàn thành.


2
pmset noidlebị phản đối: trang người đàn ông nói : This argument is deprecated in favor of caffeinate(8). Xem câu trả lời của tôi.
Nathan Long

4

Thử

man pmset

:-)

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.