특정 포트에서 수신 대기중인 프로세스 PID 결정
제목이 말하듯, 여러 개의 게임 서버를 실행하는거야, 그리고 그들 모두는 같은 가지고 name
있지만, 다른 PID
과 port
수입니다. PID
특정 포트에서 수신하는 서버 와 일치 시키고이 프로세스를 종료하고 싶습니다. bash 스크립트를 완료하려면이 정보가 필요합니다.
그게 가능할까요? 웹에서 아직 해결책을 찾지 못했기 때문입니다.
의 -p
플래그 netstat
는 프로세스의 PID 를 제공합니다.
netstat -l -p
편집 : FreeBSD에서 소켓 사용자의 PID를 얻기 위해 필요한 명령은 sockstat
. @Cyclone과의 토론에서 작업 한대로 작업을 수행하는 줄은 다음과 같습니다.
sockstat -4 -l | grep :80 | awk '{print $3}' | head -1
명령을 죽이기 위해 전달할 수있는 짧은 버전 :
lsof -i:80 -t
netstat -p -l | grep $PORT
및 lsof -i :$PORT
솔루션은 좋은 그러나 나는 선호 fuser $PORT/tcp
POSIX (대한 작업을 확장 구문을 coreutils
파이프로) :
pid=`fuser $PORT/tcp`
그것은 순수한 pid를 인쇄하므로 sed
마술을 떨어 뜨릴 수 있습니다 .
fuser
내 애호가 도구 를 만드는 한 가지는 해당 프로세스에 직접 신호를 보내는 기능입니다 (이 구문은 POSIX의 확장이기도합니다).
$ fuser -k $port/tcp # with SIGKILL
$ fuser -k -15 $port/tcp # with SIGTERM
$ fuser -k -TERM $port/tcp # with SIGTERM
또한 -k는 FreeBSD에서 지원합니다 : http://www.freebsd.org/cgi/man.cgi?query=fuser
netstat -nlp
어떤 포트에서 수신 중인지 PID를 알려야합니다.
나는 프로그래밍 방식으로 -Bash 만 사용하여-주어진 포트에서 수신하는 프로세스를 종료하고 싶었습니다 .
포트가 8089라고 가정하고 다음은 내가 한 방법입니다.
badPid=$(netstat --listening --program --numeric --tcp | grep "::8089" | awk '{print $7}' | awk -F/ '{print $1}' | head -1)
kill -9 $badPid
다른 사람에게 도움이되기를 바랍니다. 나는 그것이 우리 팀을 도울 것이라는 것을 알고 있습니다.
통사론:
kill -9 $ (lsof -t -i : portnumber)
예 : 포트 4200에서 실행중인 프로세스를 종료하려면 다음 명령을 실행하십시오.
kill -9 $(lsof -t -i:4200)
Ubuntu에서 테스트되었습니다.
sockstat가 내 컴퓨터에 기본적으로 설치되지 않았기 때문에 대신 netstat를 사용하기 위해 stanwise의 답변을 해킹했습니다.
netstat -nlp | grep -E "[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\:2000" | awk '{print $7}' | sed -e "s/\/.*//g""
Windows에서 pid를 가져 오는 netstat 옵션은 -o이고 -p는 프로토콜 필터를 선택합니다. 예 : netstat -a -p tcp -o
참고 URL : https://stackoverflow.com/questions/9856590/determine-the-process-pid-listening-on-a-certain-port
'development' 카테고리의 다른 글
전체 프로젝트의 네임 스페이스를 변경하는 방법은 무엇입니까? (0) | 2020.08.27 |
---|---|
Haskell 구성 (.) 대 F #의 파이프 전달 연산자 (|>) (0) | 2020.08.27 |
파이썬에서 이전 인쇄를 stdout에 덮어 쓰는 방법은 무엇입니까? (0) | 2020.08.27 |
Visual Studio Editor에서 시각적 "점"을 비활성화하는 방법 (0) | 2020.08.27 |
버튼을 회색으로 표시하는 방법은 무엇입니까? (0) | 2020.08.27 |