crontab để đánh thức osx từ giấc ngủ


18

Tôi có một crontab sẽ khởi chạy một chương trình nào đó vào sáng sớm (sau khi tôi đi ngủ) và đóng lại sau đó vào buổi sáng (trước khi tôi thức dậy). Nhưng iMac của tôi sẽ không thực thi tập lệnh crontab khi nó đang ngủ.

Tôi thấy có một số ưu tiên để đánh thức máy và làm cho nó ngủ lại vào một thời điểm nhất định, nhưng có cách nào để làm điều này bằng cách sử dụng crontab không?

Câu trả lời:


27

cronkhông thực thi trong khi máy tính đang ngủ, vì vậy không có cách nào để bạn có một mục crontab để đánh thức máy tính. Điều đó nói rằng bạn có thể lên lịch cho máy tính thức dậy chỉ một hoặc hai phút trước khi thực hiện nhiệm vụ cron của bạn trong Preferences >> Energy Saver >> Lịch trình.

Nó cũng có giá trị chỉ ra rằng kể từ Tiger, Apple đã chuyển việc theo lịch trình nhất từ cronvà các kịch bản như init.rcđến launchdquá trình. Nó cung cấp các phương tiện kiểm soát chi tiết hơn (nhưng cồng kềnh, tôi nghĩ) (thông qua một số tệp plist). Nó cũng sẽ tự động chạy các tác vụ bị bỏ lỡ vì máy tính đang ngủ khi thức dậy. Hãy xem trang Việc lập thời gian biểu của Apple .


Liên kết bị hỏng.
truy xuất

1
Câu trả lời tuyệt vời, nhưng bạn có thể đánh thức nó khi đóng laptop không?
Người dùng

4

Một cách khác để lên lịch thức dậy khỏi giấc ngủ là sử dụng pmset:

sudo pmset repeat wakeorpoweron MTWRFSU 03:45:00

launchd không thể đánh thức máy tính khỏi giấc ngủ, nhưng nó chạy các công việc được lên lịch trong khi ngủ sau khi thức dậy. Nếu người khác tìm kiếm cách thực hiện điều đó, ví dụ, bạn có thể lưu phần này dưới dạng ~/Library/LaunchAgents/some.label.plist:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
  <key>Label</key>
  <string>some.label</string>
  <key>ProgramArguments</key>
  <array>
    <string>say</string>
    <string>a</string>
  </array>
  <key>StartCalendarInterval</key>
  <dict>
    <key>Hour</key>
    <integer>23</integer>
    <key>Minute</key>
    <integer>59</integer>
  </dict>
</dict>
</plist>

Sau đó chạy launchctl load ~/Library/LaunchAgents/some.label.plist.


3

Bạn có thể lên lịch cho Macintosh của mình thức dậy trong bảng tùy chọn Tiết kiệm năng lượng. Xem nút Lịch trình.


2

Bạn có thể muốn nhìn vào Anacron

Anacron chạy các tác vụ định kỳ hàng ngày, hàng tuần và hàng tháng trên máy Mac của bạn ngay cả khi máy (ví dụ: máy tính xách tay) dành phần lớn thời gian để ngủ hoặc tắt. Anacron âm thầm kiểm tra khi bạn khởi động lại và cứ sau sáu mươi phút trong khi máy tính đang chạy để xem các tập lệnh định kỳ khác nhau có bị quá hạn hay không và chạy chúng nếu cần. Ưu điểm của Anacron so với nhiều giải pháp khác cho vấn đề này là nó chạy như một quy trình nền Unix phù hợp, không yêu cầu người dùng can thiệp và sử dụng các tập lệnh định kỳ thông thường.

Một ứng dụng khác có thể thực hiện mánh khóe là Awaken


1

cron sẽ không chạy trong khi OSX ở chế độ ngủ.

Bạn có thể muốn xem xét cronwake (tôi phải chạy qua google dịch vì trang web là tiếng Nhật) và anacron , hoặc bạn chỉ có thể sử dụng Energy Saverứng dụng để sắp xếp thời gian thức để chạy tập lệnh, sau đó đặt nó trở lại trạng thái ngủ.

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.