iMac 잠자기 안되는 문제 (OSX 10.15 Catalina)

카탈리나 업그레이드 이후 맥이 잠자기가 되질 않는다. 검색을 좀 해보니 동일한 문제를 겪는 사람들이 있는 것 같다. 10.15.3 업데이트가 설치된 지금까지 해결되지 않았다.

https://discussions.apple.com/thread/250933408 내용을 보면 동일하다. UserEventAgent 프로세스가 sleep 진입을 막고있다. apfs 관련 wbc_drain이라는 작업을 하는 것으로 보이는데 top으로 보면 sleeping 상태다. 도대체 뭘 위해 잠자기를 막고 있는건지 모르겠다. 화면만 꺼진 맥이 몇 달 째 전기만 왕창 잡아먹었을 듯.

catalina 이미지 검색결과

MacOS 10.15 Catalina

신기한건 회사에서 업무용으로 사용하는 맥은 괜찮다는거다. 회사 맥은 2017년 5K 모델이고, 집에 있는 맥은 Late 2013 모델이다. 동일하게 둘 다 Fusion Drive를 사용한다.

맥에 Catalina를 클린 인스톨 해 봐도 동일한 문제가 발생한다. 동일한 설정에서 모하비에서는 문제가 없었다.

pmset -g 커맨드를 쳐 보면 sleep prevented by UserEventAgent가 없어지질 않는다. 이 상태에서는 맥이 절대로 슬립에 진입하지 않는다.

cky@iMac ~ % pmset -g           
System-wide power settings:
Currently in use:
 standby              0
 Sleep On Power Button 1
 womp                 1
 halfdim              1
 hibernatefile        /var/vm/sleepimage
 powernap             0
 autorestart          1
 networkoversleep     0
 disksleep            10
 standbydelayhigh     86400
 sleep                1 (sleep prevented by UserEventAgent)
 autopoweroffdelay    28800
 hibernatemode        0
 autopoweroff         1
 ttyskeepawake        1
 displaysleep         10
 highstandbythreshold 50
 standbydelaylow      86400

pmset -g assertions 쳐 보면 apfs 관련된 것 때문이라는 것을 알 수 있다.

cky@iMac ~ % pmset -g assertions
2020-02-06 23:44:44 +0900 
Assertion status system-wide:
   BackgroundTask                 1
   ApplePushServiceTask           0
   UserIsActive                   1
   PreventUserIdleDisplaySleep    0
   PreventSystemSleep             0
   ExternalMedia                  1
   PreventUserIdleSystemSleep     1
   NetworkClientActive            0
Listed by owning process:
   pid 147(hidd): [0x0000001b0009808e] 00:00:00 UserIsActive named: "com.apple.iohideventsystem.queue.tickle serviceID:10000047f name:AppleHIDKeyboardEve product:Apple Keyboard eventType:3"  
	Timeout will fire in 600 secs Action=TimeoutActionRelease
   pid 104(powerd): [0x0000000f00088008] 01:26:49 ExternalMedia named: "com.apple.powermanagement.externalmediamounted"  
   pid 92(UserEventAgent): [0x000010f3000b88dc] 00:14:46 BackgroundTask named: "com.apple.apfsd.wbc_drain"  
	Created for PID: 2256. 
Kernel Assertions: 0x10c=USB,BT-HID,MAGICWAKE
   id=502  level=255 0x4=USB mod= description=com.apple.usb.externaldevice.14900000 owner=External
   id=504  level=255 0x4=USB mod= description=com.apple.usb.externaldevice.14400000 owner=Keyboard Hub
   id=506  level=255 0x100=MAGICWAKE mod= description=llw0 owner=IOSkywalkNetworkBSDClient
   id=507  level=255 0x100=MAGICWAKE mod= description=en0 owner=en0
   id=508  level=255 0x8=BT-HID mod= description=com.apple.driver.IOBluetoothHIDDriver owner=BNBMouseDevice
Idle sleep preventers: IODisplayWrangler

그래서 불편하지만 어쩔 수 없이 전원을 끄고있다. 2007년부터 맥을 사용해왔는데 맥의 전원을 끄고 쓰는건 지금이 처음이다. 빨리 해결됐으면 좋겠다.

라즈베리파이 배포판 업그레이드 (jessie -> stretch)

라즈베리파이에 워드프레스를 설치하여 이 페이지를 운용중이다. 언제부터인가 워드프레스를 업데이트 하려면 php 버전 7 이상이 필요하다며 업데이트가 안되었다. 시간이 좀 있어서 php7을 설치해보기로 했다.

좀 검색을 해보니 지금 사용하는 jessie 배포판은 좀 오래된 버전으로 php5를 포함하고있다. 최신판인 stretch를 설치하면 php7을 포함하므로 자연스럽게 업그레이드가 될 것 같아서 배포판 업그레이드를 하기로 결정했다.

Raspberry Pi - Raspbian-Update "Jessie" to "Stretch"
Upgrade Raspbian “Stretch”

배포판 업그레이드는 https://www.datenreise.de/en/raspberry-pi-raspbian-update-update-jessie-to-stretch/ 페이지를 보면서 따라가면 별 문제 없이 할 수 있다. 몇 가지 패키지에 문제가 있었는데 사용하지 않는 패키지라 지워버리고 진행하니 문제가 없었다.

배포판 업그레이드 후 첫 번째 문제는 php5가 남아있다는 것이다. phpinfo를 보니 php5가 출력이 되었다. php5를 지우고 php7관련 패키지들을 다시 설치하여 php7으로 넘어갈 수 있었다. php7.0-pdm 패키지가 설치되면서 mysql, apache등이 연동이 되었던 것 같다.

이렇게 php7이 설치되니까 워드프레스도 자연스럽게 업데이트가 되어 잘 동작했다.

그런데 따로 만들어둔 페이지들이 하나도 동작하지 않았다. 좀 찾아보니 mysql_* 함수들을 mysqli_* 함수들로 변경해야 한다고. 그래서 일일이 찾아서 바꿔주니 에러는 나지 않았는데 쿼리 결과가 NULL이 리턴되었다. mysqli_query 함수를 찾아보니 mysqli 인자를 필수로 넘겨줘야 하는 것 같았다. mysqli_query($query) -> mysqli_query($conn, $query)로 변경해주니 쿼리 결과가 제대로 넘어왔다.

이걸 일일이 다 바꿔주는 방법밖에 없는건지 모르겠지만 일단 급하니 하나하나 바꿔줘야 할 듯… 여튼 라즈베리파이의 배포판을 업그레이드하였으니 큰 일 하나 해낸 듯.. 🙂