[macOS] Khi Mac không thực sự sleep.

September 9, 2017

Vấn đề

Mình ko hay có thói quen shutdown con mac của mình, toàn gập xuống (sleep) rồi mang vác chạy đi đâu đó. Nhiều lần rút máy ra sau khi gập, vẫn thấy máy mình nóng ran. Thậm chí sau đó còn cẩn thận tắt đi những ứng dụng có khả nghi làm wake up con mac của mình rồi mà vẫn ko work. Máy vẫn nóng (tức là ko thực sự sleep). Tại sao?

Giải pháp

Sau hồi tìm kiếm mình đã tìm ra giải pháp này khá cool, chia sẻ cho các bạn xem.

Mở Terminal, sử dụng lệnh:

pmset -g assertions

nó sẽ ra thế này:

2017-09-07 18:24:38 +0700 
Assertion status system-wide:
BackgroundTask                 0
ApplePushServiceTask           0
UserIsActive                   1
PreventUserIdleDisplaySleep    0
InteractivePushServiceTask     1
PreventSystemSleep             0
ExternalMedia                  0
InternalPreventDisplaySleep    1
PreventUserIdleSystemSleep     1
NetworkClientActive            0
InternalPreventSleep           1
Listed by owning process:
pid 94(apsd): [0x00008a6c00129e3c] 00:00:08 InteractivePushServiceTask named: "com.apple.apsd-connectionestablish-sandbox.push.apple.com" 
    Timeout will fire in 172 secs Action=TimeoutActionTurnOff
pid 114(hidd): [0x00005e76000993a5] 03:07:42 UserIsActive named: "com.apple.iohideventsystem.queue.tickle.4294970734.11" 
    Timeout will fire in 596 secs Action=TimeoutActionRelease
pid 61(powerd): [0x00008a69000d9e2d] 00:00:11 InternalPreventSleep named: "PM configd - Wait for Device enumeration" 
    Assertion applied on Battery power also
pid 61(powerd): [0x000087a0001082f0] 00:12:03 InternalPreventDisplaySleep named: "com.apple.powermanagement.delayDisplayOff" 
    Timeout will fire in 60 secs Action=TimeoutActionTurnOff
pid 170(coreaudiod): [0x00008a6a00019df1] 00:00:09 PreventUserIdleSystemSleep named: "com.apple.audio.AppleHDAEngineOutput:1B,0,1,1:0.context.preventuseridlesleep" 
    Created for PID: 9302. 
Kernel Assertions: 0x208=BT-HID
id=542  level=255 0x8=BT-HID mod=1/1/70, 8:00 AM description=com.apple.driver.IOBluetoothHIDDriver owner=IOBluetoothHIDDriver
id=545  level=255 0x200= mod=1/1/70, 8:00 AM description=com.apple.driver.mDNSOffloadUserClient: TCP Keepalive active on en0 
Idle sleep preventers: IODisplayWrangler

Dễ dàng thấy được có một nhân tố đang cản trở việc máy sleep ngon nghẻ:

PreventUserIdleSystemSleep     1

dòng này:

pid 170(coreaudiod): [0x00008a6a00019df1] 00:00:09 PreventUserIdleSystemSleep named: "com.apple.audio.AppleHDAEngineOutput:1B,0,1,1:0.context.preventuseridlesleep" 

Có nghĩa là có tác vụ nào đó liên quan đến việc chơi nhạc trên Mac của bạn đang đc bật: iTunes, Spotify …–> nên tắt nó trước khi Sleep.

Tổng kết giải pháp

Tất nhiên nguyên nhân trên chỉ là 1 nhân tố, có rất nhiều nguyên nhân. Mình dùng phương pháp này nhiều lần và có lần rút ra đc bài học gây ra chuyện này:

1. Trình chơi nhạc
2. Downloader các kiểu.
3. **Nếu bạn là iOS develper, nên tắt SIMULATOR trc khi sleep** <-- thằng này cũng là một trong những **nguyên nhân không ngờ**.

Kết

Chúc các bạn dùng Mac ngon lành, ko bị sụt pin hay nóng máy sau khi sleep nữa. Peace out!