ReactNative

[React-Native] error listen EADDRINUSE: address already in use

졸려질려 2023. 4. 12. 19:15
반응형
 개발 환경
- M1 Macbook Pro (2021)
- macOS Ventura 13.2.1
- react@18.2.0
- react-native@0.71.4

Problem

 여느 때와 같이 "npx react-native start" 를 통해 RN 앱을 실행시켜 개발을 진행하려 했다. 그런데, 이번에 ""listen EADDRINUSE: address already in use :::8081." 에러가 나타나면서, RN 앱을 실행시킬 수가 없었다.

 에러의 내용은 대강 "주소가 이미 사용되고 있어서 지금 ReactNative 를 시킬 수 없다" 라는 뜻인 것 같았다. 주소에서도 포트(Port)가 이미 사용 중이라 새로운 RN 앱을 실행할 수 없는 것처럼 보인다. 바로 구글링을 통해 해결법을 찾았고, 바로 찾을 수 있었다.


Solution

1) lsof -i :[PORT_NUMBER]

 현재 필자가 맞닥뜨린 에러에서 나타난 중복 Port 는 8081번이다. 우선, 8081 번 포트가 정말로 사용 중인지 찾아보는 명령어를 입력한다.

lsof -i :8081

 8081 번 포트가 정말 사용 중인 것을 확인할 수 있다. 정확히는 해당 포트에 이미 프로세스(Process) 가 사용 중인 것이다. 이제 해당 포트를 사용 중인 프로세스를 해제하는 명령어를 입력해준다. 이 때, 위 명령어를 통해 얻은 결과에서 "PID(ProcessID)" 를 확인해줘야한다.

2) kill -9 [PID]

 "kill -9" 명령어를 통해 원하는 프로세스를 해제할 수 있다. 이 때, 명령어의 대상은 위에서 확인한 "PID" 이다.

kill -9 13906

 명령어가 정상적으로 동작했다면, 다시 "lsof" 명령어를 통해 8081 번 포트에 프로세스가 자리를 차지하고 있는지 확인한다.

 이제 다시 ReactNative 를 실행하면, 정상적으로 서버가 열리는 것을 확인할 수 있다.

 

반응형