localhost에서 수신 대기 포트를 닫습니다.

localhost에서 수신 대기 포트를 닫습니다.

CentOS7에서 로컬 호스트의 수신 포트를 닫는 방법은 무엇입니까? 지금까지 다음 명령을 사용하여 프로세스 ID를 찾았습니다.

sudo netstat -tlpn | grep 5601

그런 다음 다음 명령을 사용하여 프로세스를 종료하되 새 프로세스 ID로 시작합니다.

sudo kill -SIGTERM 29565

도와주세요.

여기에 이미지 설명을 입력하세요.

답변1

Unix 및 Linux StackExchange에 오신 것을 환영합니다!

귀하의 사진에 따르면 SIGTERM을 사용하여 현재 포트를 점유하고 있는 프로세스를 종료하면 새로운 프로세스가 대신 발생합니다. 따라서 systemd프로세스가 종료될 때 자동으로 프로세스를 다시 시작하도록 구성되거나 포트를 보유하는 프로세스가 주 서버 응용 프로그램의 "작업자" 하위 프로세스일 뿐입니다.

문제의 프로세스 이름은 node귀하의 출력을 기반으로 한 것 같습니다 netstat -tlpn. 그래서 먼저 다음과 같은 이름의 시스템 서비스가 있는지 확인하려고 했습니다.

systemctl | grep -i node

서비스의 정확한 이름(예 node.service: )을 알고 나면 다음을 사용하여 서비스를 중지할 수 있습니다.

systemctl stop node.service

잘못된 것으로 판명되면 재부팅하십시오.

systemctl start node.service

올바른 서비스가 중지되었음을 확인한 후에는 다음에 시스템을 재부팅할 때 서비스가 자동으로 시작되지 않도록 서비스를 비활성화할 수 있습니다.

systemctl disable node.service

답변2

특정 포트에서 수신 대기하는 프로세스를 검색하려면 lsof 또는 열린 파일 나열을 사용하십시오.

lsof

-i특정 포트 필터링 옵션 에서 실행 중인 프로세스 찾기

lsof -i TCP:[PORT]

lsof -i TCP:5601

특정 포트에서 수신 대기 중인 모든 프로세스를 종료합니다. 이 -t명령은 정확히 파이프에 대한 PID만 반환하며 xargs반환된 각 줄에서 사용됩니다.

lsof -ti tcp:[PORT] | xargs kill

lsof -ti tcp:5601 | xargs kill

프로세스가 더 지속적이고 종료가 작동하지 않으면 kill -9 [PID]더 적극적으로 종료해 보십시오.

인용하다

포트에 나열된 모든 프로세스를 찾아서 종료합니다.

Linux의 10가지 lsof 명령 예

관련 정보