우분투의 포트에서 프로세스를 종료하는 방법


488

우분투의 특정 포트에 대한 명령 줄에서 프로세스를 종료하려고합니다.

이 명령을 실행하면 포트가 나타납니다.

sudo lsof -t -i:9001

그래서 ... 지금 실행하고 싶습니다 :

sudo kill 'sudo lsof -t -i:9001'

이 오류 메시지가 나타납니다.

ERROR: garbage process ID "lsof -t -i:9001".
Usage:
  kill pid ...              Send SIGTERM to every process listed.
  kill signal pid ...       Send a signal to every process listed.
  kill -s signal pid ...    Send a signal to every process listed.
  kill -l                   List all signal names.
  kill -L                   List all signal names in a nice table.
  kill -l signal            Convert between signal numbers and names.

나도 시도 sudo kill 'lsof -t -i:9001'했다


9
참고로, 우분투 질문은 StackExchange (StackOverflow) 네트워크의 우분투 부분에서 더 나은 답변을 얻을 수 있습니다. askubuntu.com
JScoobyCed

답변:


900

일반 틱이 아닌 backtick를 사용하고 싶습니다.

sudo kill -9 `sudo lsof -t -i:9001`

그래도 작동하지 않으면 $()명령 보간 에도 사용할 수 있습니다 .

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

43
신호 옵션을 추가하지 않았습니다. 읽어야 할 사람 :sudo kill -9 $(sudo lsof -t -i:9001)
프란체스코 Gramano에게

7
@FrancescoGramano : 필요하지 않으면 -9를 사용하고 싶지 않습니다.
zellio

2
sudo kill프로세스를 죽일 수 없을 때 @ putra.koreng의 방법은 잘 작동합니다
Fangxin

3
위의 작업이 작동하지 않으면 다음을 시도하십시오. stackoverflow.com/a/50515868/9339242
Arayan Singh 18.29의

1
이 OS는 독립적입니까, 아니면 Linux입니까? 리눅스에 특정한 경우,이 명령도 작동합니다os.system("fuser -k 8080/tcp");
Ridhuvarshan


78

UBUNTU의 경우 1- pro를 사용하는 응용 프로그램 / 프로세스를 찾고 다음을 입력하십시오.

sudo netstat -lpn |grep :8080

Enter를 누르십시오.

이것과 비슷한 출력을 얻을 것입니다

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

2- 프로세스 ID가 6782인데 이제 포트 8080을 사용하는 프로세스입니다.

3- 프로세스 종료, 유형 : 킬 6782

kill 6782

3
짧고 선명 응답
카스 Kukreti

1
완벽하게 작동
Tyler Bell

위의 명령을 어떻게 사용하고 있는지 적어 주시겠습니까?
Mohit Singh

1
우분투 18.04 서버에서 더 많은 투표를 가진 asnwers의 명령을 찾지 못하는 동안 훌륭하게 작동했습니다. 감사!
Salivan

38

우분투 터미널에서 포트를 죽이는 가장 좋은 방법은 fuser -k 9001/tcp


3
나를 위해 일하는
화려 함

그것은 나에게도 효과가있었습니다. 이것이 정답입니다.
CodeSlave

35

일반적인 netstat 명령을 사용하여 표시되지 않은 일부 프로세스가 있으므로를 사용하여 확인해야합니다 sudo.

마십시오 sudo netstat -lpn |grep :8080. 시스템에서 실행중인 프로세스에는 PID가 표시되지 않습니다.이 프로세스의 PID를 얻으려면 다음을 사용하여 실행해야합니다.sudo

그런 다음 port를 사용하여 프로세스를 종료하십시오 8080. sudo여기에서도 사용해야 할 수도 있습니다 . 이 프로세스를 죽이려면sudo kill -9 PID


19

killport 명령을 사용하십시오 .

sh killport 9001 

쉘을 다운로드하려면 다음을 사용할 수 있습니다 wget.

wget https://cdn.rawgit.com/abdennour/miscs.sh/e0aac343/killport

1
작동하지 않으면 대상 포트가 이미 닫혀 있음을 의미합니다.
Abdennour TOUMI

17

우분투에서 포트 서비스를 종료하려면 터미널에 아래 명령을 입력하십시오

터미널에서 :

sudo fuser -k port/tcp
sudo fuser -k 8001/tcp

이 간단한 일이 훌륭합니다.
Tri

15

퓨저를 사용하여이를 수행 할 수도 있습니다 (기본적으로 SIGKILL을 보냅니다). sudo fuser -k 9001/tcp



12

포트 번호에서 실행중인 프로세스 를 종료하려면9001

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


lsof   - list of files(Also used for to list related processes)

-t     - show only process ID

-i     - show only internet connections related process

:9001  - show only processes in this port number

kill   - command to kill the process

-9     - forcefully

sudo   - command to ask admin privilege(user id and password).

더 많은 내 블로그를 방문 할 수 있습니다


11

먼저 포트를 기반으로 프로세스를 종료하려면 주어진 포트에 대한 관련 pid를 찾아 해당 pid를 사용하여 종료해야합니다.

내 경우에는 3000 포트의 pid (프로세스 ID)를 얻고 싶었습니다.

netstat -ltnp | grep -w '3000'

그런 다음 TCP를 듣고있는 pid를 찾으십시오.

tcp6       0      0 :::3000                 :::*                    LISTEN      29972/node  

당신은 pid 29972 를 얻을 것이다

이 pid를 죽이려면 아래 명령을 사용하십시오.

kill -9 29972

포트 기반 킬 프로세스에 대한 의사 코드

 netstat -ltnp | grep -w 'PORT'

kill -9 PID

8

이것을 사용하십시오 :

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

5

포트를 죽여라 :

sudo 프로세스 ID를 표시하는 것이 중요합니다.

$ sudo netstat -antlp | grep 45136
tcp      0      0 0.0.0.0:45136         0.0.0.0:*        LISTEN           **-** 

$ kill -9 45136

5

명령을 사용하십시오

 netstat -plten |grep java

tomcat으로 grep java를 사용하여 프로세스로 java를 사용합니다.

포트 번호와 프로세스 ID를 가진 프로세스 목록을 보여줍니다.

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

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

kill -9 16085

-9는 프로세스가 강제로 종료됨을 나타냅니다.


4

sudo 퓨저 -n tcp -k [port_number]

sudo lsof -t -i : [포트 번호]


3

포트 번호 "9001"에서 실행중인 강제 종료 프로세스에 사용하십시오.

 kill $(lsof -t -i:9001)

허용 된 답변을 포함한 다른 예와 중복됩니다.
Kenster

3

이 시도:

lsof -i :port

or 

sudo kill $(sudo lsof -t -i:8000)

or

kill -9 <pid>

or 

sh killport 8000

나는 우분투 17에 있고 kill -9 <pid>나를 위해 훌륭하게 일했습니다!
protoEvangelion


1

두 단계 프로세스 :

  1. 포트 번호의 프로세스 ID를 알고 있습니다. 8080 (임의 일 수 있음)
  2. 해당 ID 8689의 강제 종료 프로세스 (다를 수 있음)

    fuser -n tcp 8080
    
    #o/p 8080/tcp    8689
    
    kill -9 8689
    


1

컴퓨터가 수신중인 포트 인 활성 TCP 연결을 표시합니다.

netstat -tupln

그것은 pid를 따라 모든 연결을 나열합니다. pid를 찾아 복사 한 후 다음 명령을 실행하십시오. 다음 명령에서를 실제 ID로 바꾸십시오.

kill -9 <copied pid>

-9 연결을 강제 종료하는 데 사용합니다.


1

시도 sudo fuser PORT/tcp -k 교체 PORT예를 들어, 당신이 죽이고 싶어 포트로80


0

킬 -9 $ (lsof -t -i : 9001)

프로세스를 종료하는 데 사용할 수 있습니다. 9001 대신 모든 포트 번호를 사용할 수 있습니다


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.