Program Tip

Linux의 특정 포트에서 실행되는 프로세스를 종료하는 방법은 무엇입니까?

programtip 2020. 10. 2. 23:09
반응형

Linux의 특정 포트에서 실행되는 프로세스를 종료하는 방법은 무엇입니까?


./shutdown.shtomcat /bin디렉토리 에서 사용하여 tomcat을 닫으려고했습니다 . 그러나 서버가 제대로 닫히지 않았습니다. 따라서
내 바람둥이가 포트에서 실행 중입니다 8080.

에서 실행되는 바람둥이 프로세스를 종료하고 싶습니다 8080. 먼저 죽일 프로세스를 선택하기 위해 특정 포트 (8080)에서 실행중인 프로세스 목록을 갖고 싶습니다.


그러면 fuser 8080/tcp해당 포트에 바인딩 된 프로세스의 PID가 인쇄됩니다.

그리고 이것은 fuser -k 8080/tcp그 과정을 죽일 것입니다.

Linux에서만 작동합니다. 보다 보편적 인 것은 lsof -i4(또는 IPv6의 경우 6) 사용입니다.


포트 8080을 수신하는 프로세스를 나열하려면 :

lsof -i:8080

포트 8080을 수신하는 프로세스를 종료하려면 :

kill $(lsof -t -i:8080)

또는 더 폭력적으로 :

kill -9 $(lsof -t -i:8080)

( 신호에 -9해당 SIGKILL - terminate immediately/hard kill: Kill Signals 목록kill 명령에서 -9 옵션의 목적은 무엇입니까?를 참조하십시오 .. 신호가으로 지정되지 않은 경우 killTERM 신호는 일명 -15또는 soft kill전송되며 때로는 죽이기에 충분하지 않습니다. 프로세스.).


명령 사용

 sudo netstat -plten |grep java

사용 grep java으로 tomcat사용 java자신의 프로세스로.

포트 번호와 프로세스 ID가있는 프로세스 목록이 표시됩니다.

tcp6       0      0 :::8080                 :::*                    LISTEN      
1000       30070621    16085/java

앞의 숫자 /java는 프로세스 ID입니다. 이제 kill명령을 사용 하여 프로세스를 종료하십시오.

kill -9 16085

-9 프로세스가 강제로 종료됨을 의미합니다.


특정 포트에서 LISTEN 만 죽이기 위해이 한 줄짜리를 추가합니다.

kill -9 $(lsof -t -i:3000 -sTCP:LISTEN)


lsof 명령을 사용할 수 있습니다. 여기와 같은 포트 번호는 8090입니다.

lsof -i:8090

이 명령은이 포트에서 열린 프로세스 목록을 반환합니다.

뭔가…

COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
ssh 75782 eoin 5u IPv6 0x01c1c234 0t0 TCP localhost:8090 (LISTEN)

포트를 해제하려면 그것을 사용하여 프로세스를 종료하십시오 (프로세스 ID는 75782입니다)…

kill -9 75782

이것은 나를 위해 일했습니다. 다음은 원래 게시물의 링크입니다. 링크


포트 번호 8080에서 실행중인 프로세스를 종료하려면 먼저 8080 포트 프로세스 식별 번호 (PID)를 찾은 다음 종료해야합니다. 다음 명령을 실행하여 8080 포트 번호 PID를 찾습니다.

sudo lsof -t -i:8080

여기,

  • sudo- 관리자 권한 (사용자 ID 및 암호)을 묻는 명령.
  • lsof- 파일 목록 (관련 프로세스를 나열 하는데도 사용됨)
  • -t- 프로세스 ID 만 표시
  • -i- 인터넷 연결 관련 프로세스 만 표시
  • : 8080- 이 포트 번호의 프로세스 만 표시

따라서 이제 다음 명령을 사용하여 쉽게 PID를 종료 할 수 있습니다.

sudo kill -9 <PID>

여기,

  • kill-프로세스를 종료하는 명령
  • -9-강제

You can use one command to to kill a process on a specific port using the following command:

sudo kill -9 $(sudo lsof -t -i:8080)

For more you can see the following link How to kill a process on a specific port on linux


This prints to stdout the process ids of everything running on <port_number>:

fuser -n tcp <port_number> 

It also prints some stuff to stderr, so:

fuser -n tcp <port_number> 2> /dev/null

We can then supply these process ids to the kill command:

sudo kill $(fuser -n tcp <port_number> 2> /dev/null)

You could also put this in a function if you do it a lot:

function killport() {
    sudo kill $(fuser -n tcp $1 2> /dev/null)
}

To know the pid of service running on particular port :

netstat -tulnap | grep :*port_num*

you will get the description of that process. Now use kill or kill -9 pid. Easily killed.

e.g

netstat -ap | grep :8080

tcp6       0      0 :::8080       :::*    LISTEN      1880/java 

Now:

kill -9 1880

Remember to run all commands as root


Get the PID of the task and kill it.

lsof -ti:8080 | xargs kill

try like this,

 sudo fuser -n tcp -k 8080

  1. lsof -i tcp:8000 This command lists the information about process running in port 8000

  2. kill -9 [PID] This command kills the process


Linux: First you can find PID of this command if you know the port :

netstat -tulpn 

example:-

 Local Address  Foreign Address  State    PID/Program name

  :::3000       :::*             LISTEN    15986/node 

You then take the kill process. run the following command:

kill -9 PID

Expample: -

kill -9 15986


Linux: You can use this command if you know the port :

netstat -plten | grep LISTEN | grep 8080

AIX:

netstat -Aan | grep LISTEN | grep 8080

You then take the first column (example: f100050000b05bb8) and run the following command:

rmsock f100050000b05bb8 tcpcb

kill process.


You can know list of all ports running in system along with its details (pid, address etc.) :

netstat -tulpn

You can know details of a particular port number by providing port number in following command :

sudo netstat -lutnp | grep -w '{port_number}'

ex: sudo netstat -lutnp | grep -w '8080' Details will be provided like this :

Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name

if you want to kill a process using pid then : kill -9 {PID}

if you want to kill a process using port number : fuser -n tcp {port_number}

use sudo if you are not able to access any.


Choose the port number and apply the grep in netstat command as shown below

netstat -ap | grep :7070

Console Output

tcp 0 0 :::7070 :::* LISTEN 3332/java

Kill the service based on PID ( Process Identification Number )

kill -9 3332

kill -9 `fuser 8080/tcp|xargs -n 1`, this commands also kills the process that listens on port 8080 with TCP connection


sudo apt-get install psmisc (or sudo yum install psmisc)
sudo fuser 80/tcp

Result: 80/tcp: 1858 1867 1868 1869 1871

Kill process one by one

kill -9 1858


to build on what @veer7 said:

if you want to know what was on the port, do this before you kill it.

$ sudo netstat -plten |grep java
tcp6       0      0 127.0.0.1:8005          :::*                    LISTEN      1000       906726      25296/java      
tcp6       0      0 :::8009                 :::*                    LISTEN      1000       907503      25296/java      
tcp6       0      0 :::8080                 :::*                    LISTEN      1000       907499      25296/java      
$ ps 25296
  PID TTY      STAT   TIME COMMAND
25296 ?        Sl     0:16 /usr/lib/jvm/java-8-openjdk-amd64/bin/java -Dcatalina.base=/hom

Use 'ps' and the number of the process that netstat reported back


Other way with Git Bash:

stopProcessByPortNumber() {
port=":${1}"
portStrLine="$(netstat -ano | findstr LISTENING | findstr $port)"
processId="$(grep -oP '(\d+)(?!.*\d)' <<< $portStrLine)"
echo $processId
taskkill -PID $processId -F
}

In Windows, it will be netstat -ano | grep "8080" and we get the following message TCP 0.0.0.0:8080 0.0.0.0:0 LISTENING 10076

WE can kill the PID using taskkill /F /PID 10076

참고URL : https://stackoverflow.com/questions/11583562/how-to-kill-a-process-running-on-particular-port-in-linux

반응형