본문으로 건너뛰기

프로세스 강제 종료

🤔 실수 때문에 생긴 에러

django를 시작하고 종료할 때 Ctrl-C를 사용해서 꺼야 했는데 Ctrl-Z를 사용했다. 종료가 제대로 된 줄 알았지만, 프로세스가 중단된 것이었다.

port-error-image

결국 위의 Error: That port is already in use.라는 에러가 발생했다.

🚩 해결

ps

대충 프로세스를 종료하면 되지 않을까 생각했고, ps 명령어를 사용해봤으나 역시 어떤 PID가 장고 프로세스인지 알아볼 수 없었다.

결국 스택오버플로우에 냅다 검색해버렸다.(Reference 참고)
역시 StackOverFlow는 정답을 알려줬다.(스택오버플로우는 신이야!)

sudo lsof -t -i tcp:8000 | xargs kill -9

위의 명령어를 사용하면 해결이 된다.

간단하게 정리하자면 lsof는 시스템에 열려있는 파일에 대한 정보를 출력하는 명령어다. 여기서 사용한 -i 옵션은 열려있는 네트워크 포트 정보를 확인하는 것이고, -t 옵션은 그 중 PID만 출력한다는 것이다.

xargs는 파이프 이전의 명령을 인자로 받아 다음 명령을 실행할 때 주로 사용한다.

kill -9는 유명해서 다들 아시겠지만 SIGNAL 리스트 중 SIGKILL의 번호를 옵션으로 사용한 것이다.

명령어는 우분투 환경에서 사용했지만, 맥에서도 돌아간다고 한다.

🌐 References