Awake๋ ์ฌ์ฉ์๊ฐ ์ ํํ ์คํ ์ค ์ฑ/์๋์ฐ๊ฐ ์ข ๋ฃ๋ ๋๊น์ง macOS ์ ํด ์ ์๊ธฐ๋ฅผ ๋ง๋ ๋ฉ๋ด๋ฐ ์ฑ์ด๋ค. ์ ํ์ ์ ๋ขฐ ๊ฐ๋ฅํ ์ ์ assertion, ๋ช ํํ ์ํ ํ์, ์๋ ํด์ , ํ๊ฒฝ๋ณ ํ๊ณ ์๋ด์ ์ง์คํ๋ค.
- ์ฌ์ฉ์๊ฐ ๋ฉ๋ด๋ฐ ์์ด์ฝ์ ํด๋ฆญํ๊ฑฐ๋ ์ ์ญ ๋จ์ถํค๋ฅผ ๋๋ฅธ๋ค.
- Awake๊ฐ ํ์ฌ ์คํ ์ค์ธ ์ฑ๊ณผ ๊ฐ์ง ๊ฐ๋ฅํ ์๋์ฐ ๋ชฉ๋ก์ ํ์ํ๋ค.
- ์ฌ์ฉ์๊ฐ ํ๋ ์ด์์ ๋์์ ์ ํํ๋ค.
- ์ฌ์ฉ์๊ฐ
Start๋ฅผ ๋๋ฅธ๋ค. - Awake๊ฐ ์ ์ assertion์ ์์ฑํ๊ณ ์ธ์ ์ active ์ํ๋ก ๋ฐ๊พผ๋ค.
- ๋ฉ๋ด๋ฐ์ active ์ํ์ ์ ํ ๋์ ์๋ฅผ ํ์ํ๋ค.
- Awake๋ ์ ํ ๋์์ ํ๋ก์ธ์ค ์์กด ์ฌ๋ถ๋ฅผ ์ฃผ๊ธฐ์ ์ผ๋ก ํ์ธํ๋ค.
- ์ ํ ๋์ ์ค ํ๋๋ผ๋ ์ด์ ์์ผ๋ฉด ์ธ์ ์ ์ ์ง๋๋ค.
- ์ ํ ๋์์ด ๋ชจ๋ ์ข ๋ฃ๋๋ฉด ์ธ์ ์ ์๋ ์ข ๋ฃํ๋ค.
- ์ฌ์ฉ์๋ ๋ฉ๋ด๋ฐ์์ ์ธ์ ๋ ์๋ ์ข ๋ฃํ ์ ์๋ค.
- ์ฌ์ฉ์๊ฐ ์ ์ ๊ด๋ จ ์ค์ ์ ๋ฐ๊พธ๋ฉด active ์ธ์ ์ assertion์ ์ฆ์ ๋ฐ์ํ๋ค.
- ์๋ ์ข ๋ฃ ์กฐ๊ฑด: ์ ํํ ๋์์ด ๋ชจ๋ ์ข ๋ฃ๋จ
- ์๋ ์ข
๋ฃ ์กฐ๊ฑด: ์ฌ์ฉ์๊ฐ
Stop Keeping Awake์ ํ - ์ฑ ์ข ๋ฃ ์กฐ๊ฑด: Awake ์ข ๋ฃ ์ assertion์ ๋ฐ๋์ ํด์
- macOS ๋ฉ๋ด๋ฐ ์ฑ
- ์คํ ์ค ์ฑ ๋ชฉ๋ก ํ์
- ๊ฐ๋ฅํ ๊ฒฝ์ฐ ์ฑ๋ณ ์๋์ฐ ๋ชฉ๋ก ํ์
- ๋ค์ค ์ ํ
- ์ ์ assertion ์์ฑ/ํด์
- ์ ํ ๋์ ์ข ๋ฃ ๊ฐ์ง
- ์ธ์ ์ํ ๋ฉ๋ด๋ฐ ํ์
- ๊ถํ ๋ถ์กฑ ์๋ด
- ๊ธฐ๋ณธ ์ค์ ์ ์ฅ
- ๋ฎ๊ฐ ๋ซํ ์ํ์์ ๋ณดํธ ์ธ์ ์ ์ ์งํ๊ธฐ ์ํ ๊ด๋ฆฌ์ ๊ถํ ๊ธฐ๋ฐ ๊ณ ๊ธ ๋ชจ๋
- ๊ณ ๊ธ ๋ชจ๋ ์ข ๋ฃ ํ macOS sleep ์ค์ ๋ณต๊ตฌ
- private API ์ฌ์ฉ
- ์ปค๋ ํ์ฅ ๋๋ ์์คํ ํ์ฅ ์ค์น
- ์ ๋ฐฐํฐ๋ฆฌ, ์ด ๋ณดํธ, MDM ์ ์ฑ , ๊ฐ์ ์ข ๋ฃ ๊ฐ์ ์์คํ ๋ณดํธ ๋์ ์ฐํ
- ์์ ๋ด์ฉ ๋ถ์
- ํฐ๋ฏธ๋/tmux ์ธ์ ๋ด๋ถ ํ๋ก์ธ์ค ์ถ์
- ์ฑ๋ณ ์๋ ์ถ์ฒ
- iCloud ๋๊ธฐํ
Awake๋ ์ผ๋ฐ ์ธ์
์์ macOS ๊ณต๊ฐ IOKit assertion์ ์ฌ์ฉํ๋ค. ์ฌ์ฉ์๊ฐ lid-closed ๋ชจ๋๋ฅผ ์ผ๋ฉด ์ต์ด 1ํ ๊ด๋ฆฌ์ ๊ถํ์ ์์ฒญํด LaunchDaemon helper๋ฅผ ์ค์นํ๋ค. helper๋ ์ธ์
์ ํธ ํ์ผ์ ๊ฐ์ํ๊ณ , ์ธ์
๋์ pmset -a disablesleep 1์ ์ ์ฉํ ๋ค ๋ณดํธ ๋์์ด ์ข
๋ฃ๋๊ฑฐ๋ ์ฌ์ฉ์๊ฐ ์ธ์
์ ๋ฉ์ถ๊ฑฐ๋ ์ฑ์ด ์ข
๋ฃ๋ ๋ pmset -a disablesleep 0์ผ๋ก ๋ณต๊ตฌํ๋ค.
์ ํ์ด ์ ๊ณตํ๋ ๊ฒ์ ๋ค์์ด๋ค.
- ์ ํ ๋์์ด ์ด์ ์๋ ๋์ ์ฌ์ฉ์ ์ ํด๋ก ์ธํ ์์คํ ์ ์๊ธฐ๋ฅผ ๋ฐฉ์ง
- ๊ธฐ๋ณธ ์ค์ ์ผ๋ก ์ฌ์ฉ์ ์ ํด๋ก ์ธํ ๋์คํ๋ ์ด ์ ์๊ธฐ๋ฅผ ๋ฐฉ์ง
- closed-display ํ๊ฒฝ์ ์ํด public
NetworkClientActiveassertion์ best-effort๋ก ํจ๊ป ์ฌ์ฉ - lid-closed ๋ชจ๋์์๋ ์์คํ sleep disabled ์ค์ ์ผ๋ก ๋ฎ๊ฐ ๋ซํ sleep์ ๋ฐฉ์ง
- lid-closed ์ธ์ ์ค ์ค์ ๋ฎ๊ฐ ๋ซํ ์ด๋ฒคํธ ๋๋ clamshell ์ํ ๋ณ๊ฒฝ์ด ํ์ธ๋๋ฉด ํ๋ฉด๋ณดํธ๊ธฐ๋ฅผ ์คํํด ๋ค์ ์ด์์ ๋ ์ ๊ธ ํ๋ฉด ํ๋ฆ์ ์ ๋
- ๋ฉ๋ด๋ฐ์์ macOS sleep ์ค์ ์ ์๋ ๋ณต๊ตฌํ ์ ์๋ ์ก์ ์ ๊ณต
์ ํ์ด ๋ณด์ฅํ์ง ์๋ ๊ฒ์ ๋ค์์ด๋ค.
- ์ฌ์ฉ์๊ฐ ๋ช ์์ ์ผ๋ก ์ ์๊ธฐ๋ฅผ ์ ํํ ์ํ์์ ๊ณ์ ์คํ
- ๋ฐฐํฐ๋ฆฌ ๋ฐฉ์ , ์ ๋ฐฐํฐ๋ฆฌ ๊ฐ์ ์ข ๋ฃ, ์ด ๋ณดํธ, ํ์ฌ ๊ด๋ฆฌ ์ ์ฑ ์ ์ฐํํ ๊ณ์ ์คํ
idle: ๋ณดํธ ์ธ์ ์์selecting: ๋์ ์ ํ ํ๋ฉด ์ด๋ฆผactive: assertion์ด ์ผ์ ธ ์๊ณ ๋์ ๊ฐ์ ์คstopping: assertion ํด์ ์คerror: assertion ์์ฑ ์คํจ, ๊ถํ ๋ถ์กฑ, ๊ฐ์ ์คํจ ๋ฑ ์ฌ์ฉ์ ์กฐ์น ํ์
์ ํํ ๋์ ์ค ํ๋๋ผ๋ ์ด์ ์์ผ๋ฉด ๋ณดํธ ์ธ์ ์ ์ ์งํ๋ค. ๋ชจ๋ ๋์์ด ์ข ๋ฃ๋๋ฉด ํด์ ํ๋ค.
์๋์ฐ ๋จ์ ์ ํ์ UI์์ ์ ๊ณตํ๋, ํ์ฌ ์ข ๋ฃ ๊ฐ์ง๋ ์ฑ ํ๋ก์ธ์ค ๋จ์๋ก ์์ํ๋ค. ์๋์ฐ ๋จ์ ์๋ ์ข ๋ฃ๋ macOS ์ฑ๋ณ ์๋์ฐ ๋์ ์ฐจ์ด๊ฐ ํฌ๋ฏ๋ก ๋ณ๋ ๊ธฐ๋ฅ์ผ๋ก ์ ๊ตํํ๋ค.
- lid-closed ๋ชจ๋๋ ๊ด๋ฆฌ์ ๊ถํ์ผ๋ก ์์คํ ์ ์ฒด sleep ์ค์ ์ ๋ฐ๊พธ๋ฉฐ, ์ธ์ ์ข ๋ฃ ์ ๋ณต๊ตฌ๋๋ค๊ณ ์๋ดํ๋ค.
- ์ต์ด 1ํ ๊ด๋ฆฌ์ ๊ถํ์ผ๋ก helper๋ฅผ ์ค์นํ๋ฉด ์ดํ ์ธ์ ์์/์ข ๋ฃ๋ ๋ฐ๋ณต ๋น๋ฐ๋ฒํธ ์์ด ์ฒ๋ฆฌ๋๋ค๊ณ ์๋ดํ๋ค.
- ๊ฐ๋ฐฉ์ด๋ ๋ฐํ๋ ๊ณต๊ฐ์์ ์ฌ์ฉํ์ง ๋ง๋ผ๊ณ ์๋ดํ๋ค.
- ์คํจํ๋ฉด ์ฌ์ฉ์๊ฐ ๋ค์์ ํ ํ๋์ ์ ์ ์๊ฒ ์ด๋ค.
- ๊ธฐ๋ณธ assertion ๋ชจ๋: system sleep ๋ฐฉ์ง + display sleep ๋ฐฉ์ง + closed-display best-effort ์ผฌ + lid-closed ๋ชจ๋ ์ผฌ
- ์ฒดํฌ ๊ฐ๊ฒฉ: 5์ด
- lid-closed ์ธ์ ์ต๋ ์๊ฐ: 240๋ถ
- lid-closed ๋ฐฐํฐ๋ฆฌ ์์ ์ข ๋ฃ ๊ธฐ์ค: 20%
- ์ธ์ ์ข ๋ฃ ํ ์๋ฆผ: ์ผฌ
- ๋ฉ๋ด๋ฐ active ํ์: ์ผฌ
- ์ธ์ด: ์์คํ ๊ธฐ๋ณธ ์ธ์ด๋ฅผ ๋ฐ๋ฆ. ์ค์ ์์ ํ๊ตญ์ด, ์ค๊ตญ์ด, ์ผ๋ณธ์ด, ์์ด๋ก ๋ณ๊ฒฝ ๊ฐ๋ฅ