[오류 노트] kill 명령어로 프로세스 종료
오류 발생
REST API 실습을 위해 json-server를 실행했다.
하지만 오류가 발생한다!!
address already in use 127.0.0.1:3000
→ 이미 3000 포트를 사용하고 있다는 것이다.
이럴 경우 구동하는 포트 번호를 3001와 같은 식으로 바꾸거나 이미 사용 되고 있는 3000의 서버를 강제 종료하면 된다.
해결 방법
kill 명령어로 프로세스 종료
서버를 구동시킨 상태에서 losf 명령어를 사용 입력한다. -i 옵션 뒤에 프로토콜과 포트를 명시해주면 TCP 3000번 포트를 사용하는 프로세스 정보가 출력된다.
위 사진과 같이 정보가 출력된다. 여기서 확인 할 것은 실행된 node의 PID(process ID)이다. 58841번을 기억하고 이제 해당 프로세스를 중지해보자
서버를 구동 시켰을 때 명령어를 또 입력할 수 없다면?
터미널의 우측 상단에 이런 아이콘이 있다. 여기서 가운데 아이콘을 클릭하면 터미널 창이 하나 더 생긴다.
kill 명령어
kill -9 명령어를 사용하면 해당 프로세스가 중지 된다.
kill -9
명령어는 해당 프로세스를 즉시 종료하기 때문에 데이터 유실되거나 리소스가 제대로 안닫히는 문제가 발생할 수 있다.
권장하는 방법은 kill -TERM PID
나 kill -INT PID
같이 종료를 의미하는 signal 을 여러 번 전송해서 종료시킨다. 제대로 된 프로그램은 보통 cleanup 코드를 수행하고 종료하게 됩니다.
참고
Last updated