Linux서버포트트러블슈팅
포트를 점유한 프로세스 찾아서 종료하기
변수 입력3개
포트가 사용 중이라는 이유만으로 바로 프로세스를 강제 종료하면 서비스 장애나 데이터 손상이 생길 수 있습니다. 먼저 PID, 사용자, 전체 명령행과 systemd 관리 여부를 확인하세요.
Linux 서버에서 {{PORT}} 포트를 점유한 프로세스를 안전하게 종료하려고 해.
읽기 전용 확인, 서비스 여부 판별, 정상 종료, 검증 순서로 안내해 줘.
운영 서버이므로 kill -9는 마지막 수단으로만 다뤄 줘.1. 포트와 프로세스 확인
sudo ss -ltnp 'sport = :{{PORT}}'
sudo lsof -nP -iTCP:{{PORT}} -sTCP:LISTEN
ps -fp {{PID}}실행 파일과 전체 인자를 추가로 확인할 수 있습니다.
sudo readlink -f /proc/{{PID}}/exe
sudo tr '\0' ' ' < /proc/{{PID}}/cmdline; echo2. systemd 서비스인지 확인
systemctl status {{SERVICE}} --no-pager서비스라면 PID를 직접 종료하지 말고 서비스 단위로 중지합니다.
sudo systemctl stop {{SERVICE}}일반 프로세스라면 먼저 SIGTERM을 보냅니다.
kill {{PID}}3. 종료 검증
sudo ss -ltnp 'sport = :{{PORT}}'
ps -p {{PID}}계속 남아 있을 때 로그와 자식 프로세스를 확인한 다음에만 강제 종료합니다.
kill -9 {{PID}}곧바로 다시 실행되면 systemd의 Restart= 정책, Docker restart policy, supervisor 또는 Kubernetes가 관리하는 프로세스인지 확인하세요.
확인 기준: man ss, man lsof, man kill, man systemctl
댓글 0개
아직 댓글이 없습니다.
