Tắt mà không hiển thị hộp thoại xác nhận:
osascript -e 'tell app "System Events" to shut down'
Tắt sau khi hiển thị hộp thoại xác nhận:
osascript -e 'tell app "loginwindow" to «event aevtrsdn»'
Khởi động lại mà không hiển thị hộp thoại xác nhận:
osascript -e 'tell app "System Events" to restart'
Khởi động lại sau khi hiển thị hộp thoại xác nhận:
osascript -e 'tell app "loginwindow" to «event aevtrrst»'
Đăng xuất mà không hiển thị hộp thoại xác nhận:
osascript -e 'tell app "System Events" to «event aevtrlgo»'
Đăng xuất sau khi hiển thị hộp thoại xác nhận:
osascript -e 'tell app "System Events" to log out'
Đi ngủ ( pmset
):
pmset sleepnow
Đi ngủ (AppleScript):
osascript -e 'tell app "System Events" to sleep'
Đặt màn hình vào chế độ ngủ (10.9 trở lên):
pmset displaysleepnow
Bốn mã thư cho các sự kiện của Apple được liệt kê trong AERegistry.h
.
Tất cả các lệnh Sự kiện hệ thống ở trên sẽ gửi các sự kiện của Apple đến loginwindow
quy trình. loginwindow
được gửi cùng các sự kiện của Apple như trên khi bạn đăng xuất, khởi động lại, tắt hoặc đặt máy Mac ngủ bình thường. Xem Hỏi đáp kỹ thuật QA1134: Lập trình gây ra khởi động lại, tắt máy và / hoặc đăng xuất .
Theo man shutdown
, shutdown -h now
và shutdown -r now
gửi cho xử lý một TERM
tín hiệu tiếp theo là một KILL
tín hiệu.
Theo Hướng dẫn lập trình dịch vụ và Daemons , khi bạn yêu loginwindow
cầu đăng xuất, các quy trình hỗ trợ chấm dứt đột ngột sẽ được gửi KILL
tín hiệu và các quy trình không hỗ trợ chấm dứt đột ngột sẽ bị chấm dứt theo các cách khác nhau: Ứng dụng ca cao nhận applicationShouldTerminate:
phương thức ủy nhiệm, ứng dụng nền trước nhận kAEQuitApplication
sự kiện Apple, các ứng dụng nền nhận kAEQuitApplication
sự kiện Apple theo sau là KILL
tín hiệu và trình nền nhận được TERM
tín hiệu theo sau là KILL
tín hiệu sau vài giây.