[error] Interrupted system call

Screenshot 2024-05-22 at 5.09.13 PM.png

 

 

테스트를 하다 보면 꽤 자주 뜨는 오류이당.

 

더는 까먹지 않기 위해 정리하고자 한다.

 

Simulator의 캐시 때문에 해당 오류가 뜨는 것 같다.

 

해결하기 위해서 stackoverflow의 도움을 받았는데, 해당 방법은 다음과 같다.

  1. Xcode를 닫고 terminal에 sudo chmod 1777 /tmp
  2. ~/Library/Developer/CoreSimulator/Caches/dyld 폴더에 남아 있는 캐시를 삭제해 준다.
  3. Xcode 재실행!

 

방법이 상당히 간단한데, chmod 1777은 왜 하는거지? 싶어서 조금 찾아보았다.

 

chmod 는 흔히 알고 있듯이 파일이나 디렉토리의 권한을 변경할 수 있는 명령어이다.

 

해당 명령어는 각 bit 자리수를 계산하여 설정할 수 있는데,

read(r): 4

write(r): 2

execute(1): 1

⇒ 총합 7로 권한 설정을 할 수 있다.

 

위에서 사용한 chmod 1777은 stricky bit로, 나 이외의 유저나 그룹에 권한이 부여되었을 때 발생할 수 있는 문제를 해결하기 위한 bit이다. 말하자면 해당 폴더에는 소유자나 root만이 삭제할 수 있다.

 

777 권한으로 설정할 경우에는 모든 사용자들이 접근할 수 있기 때문에 해당 문제를 방지하려고 앞에 1 bit를 추가하여 쓰는듯.

 

 

linux의 /tmp 폴더에는 원래 1777 옵션이 적용되어 있다고 하는데 비슷한 맥은 안 그런가? ㅇ.ㅇ …

담에 확인해 봐야겠다….

 

 

 

도움을 받은 stackoverflow 글

 

Cannot run iOS 15 Simulator on Xcode 15.0.1: Interrupted system call

I was trying to run iOS 15 Simulator on Xcode 15.0.1, but I got an error: "Unable to boot the Simulator. Interrupted system call" I tried: Reinstalling Xcode Deleted "Derived Data&q...

stackoverflow.com