Tôi cho rằng bạn muốn bắt đầu quy trình này thay vì để nó chạy vào thời gian được lên lịch thường xuyên.
Cách tiếp cận của tôi sẽ là bắt đầu điều này từ dòng lệnh, nhưng bất kỳ lệnh nào cũng có thể được chạy trong thành phần tập lệnh shell của tập lệnh Automator với một số sửa đổi. Cách tiếp cận sau đây kết hợp một vài thành phần để hoàn thành công việc:
- Một
tell
lệnh để thoát khỏi ứng dụng
- Một cuộc gọi dòng lệnh để đặt máy tính ngủ
- Một cuộc gọi dòng lệnh để lên lịch 1 và 2 trong một thời gian cụ thể.
1. Nói ứng dụng bỏ
Điều này có thể đơn giản như:
osascript -e 'tell application "AppName" to quit'
2. Đặt máy tính vào chế độ ngủ
Hãy xem pmset
để biết thêm chi tiết, nhưng ban hành lệnh sau sẽ khiến máy tính của bạn ngủ:
pmset sleepnow
3. Lên lịch cho một hoạt động được chạy tại một thời điểm cụ thể
Có một cái nhìn tại lệnh. Lệnh này cung cấp cho bạn khả năng chỉ định thời gian để lệnh chạy. Bạn sẽ cần kích hoạt chức năng này vì nó không theo mặc định. Để bật atrun
daemon, hãy chạy lệnh sau [tham khảo trên SU] :
sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.atrun.plist
Khi bạn đã bật atrun
, mọi lệnh có thể được lên lịch trong một thời gian cụ thể bằng cách ban hành
echo "<command>" | at HH:MM
Nó hoạt động bởi vì at
nó lấy đầu vào từ stdin
mặc định. Một cách tiếp cận đơn giản hơn là chạy các lệnh được liệt kê trong một tệp. Một tập tin có thể được thực thi bằng cách sử dụng -f
cờ, theo sau là tên của tập lệnh sẽ được chạy như thế này:
at -f /path/to/file HH:MM
Để tất cả chúng cùng nhau
Điều gì sau giả định atrun
được kích hoạt. Để làm ví dụ về đồ chơi, hãy nói rằng tôi muốn thoát khỏi Mail và đặt máy tính ngủ vào lúc 11 giờ tối. Tôi sẽ tạo một tệp chứa các lệnh mà tôi muốn chạy như sau:
osascript -e 'tell application "Mail" to quit'
pmset sleepnow
Lưu tệp đó vào quit-and-sleep
và sau đó chạy trên dòng lệnh
at -f /path/to/quit-and-sleep 23:00
Hãy cẩn thận
Tôi đã không thực hiện bất kỳ kiểm tra nào để đảm bảo rằng Thư thực sự đóng. Kịch bản cũng giả định rằng không có gì khác sẽ cản trở máy tính ngủ. Tôi đã giữ nó đơn giản ở đây như một điểm khởi đầu cho những gì bạn muốn.