如何终止 ubuntu 端口上的进程

问题描述 投票:0回答:29

我正试图在命令行中为 ubuntu 中的特定端口终止进程。

如果我运行此命令,我将获得端口:

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'

ubuntu port kill
29个回答
1672
投票

您想使用反引号,而不是常规勾号:

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

如果这不起作用,您也可以使用

$()
进行命令插值:

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

395
投票

你可以使用

fuser -n tcp -k 9001 

在维基百科中查看更多详细信息


149
投票

对于 Ubuntu 1- 找到正在使用 pro 的应用程序/进程,键入:

sudo netstat -lpn |grep :8080

然后按 Enter。

你会得到类似于这个的输出

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

2- 我得到进程 ID,它是 6782,现在这是使用端口 8080 的进程。

3- 终止进程,输入:kill -p 6782

kill -9 6782

112
投票

在 Ubuntu 终端中关闭端口的最佳方法是使用

fuser
命令;例如:

fuser -k 9001/tcp

默认发送

SIGKILL


37
投票

有一些进程使用普通的 netstat 命令没有显示,所以你必须使用

sudo
来检查它。

sudo netstat -lpn |grep :8080
。系统运行的进程不显示 PID,要获取此进程的 PID,您必须使用
sudo

运行它

然后使用端口

8080
终止进程。您可能还需要在这里使用
sudo
。所以要杀死这个过程使用
sudo kill -9 PID


36
投票

杀死在端口号9001

上运行的
process

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).

更多你可以访问我的blog


23
投票

使用killport命令:

sh killport 9001 

要下载 shell,您可以使用

wget
:

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

14
投票

首先要根据端口终止进程,我们必须找出给定端口的相关 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

基于端口kill进程的伪代码

 netstat -ltnp | grep -w 'PORT'

kill -9 PID

14
投票
killport <port>

在您的 CLI 中添加此代码并使用此别名。

killport () {
  PID=$(sudo lsof -t -i:$1)
  sudo kill -9 ${PID}
}

13
投票

sudo kill -9 $(sudo lsof -t -i:9001)
为我工作或 你可以使用

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

将 9001 替换为您想要的端口号。


12
投票

使用这个:

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

10
投票

只需在终端中输入以下命令

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

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

使用 grep java 因为 tomcat 使用 java 作为他们的进程。

它将显示带有端口号和进程 ID 的进程列表

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

/java 之前的数字是进程号。现在使用 kill 命令终止进程

kill -9 16085

-9 表示进程将被强行杀死。


5
投票

如果我是你,我会用

fuser -k -n tcp PORT
kill -9 PID

5
投票

您可以在终端中使用以下命令

fuser -k 3000/tcp


4
投票

试试这个:

lsof -i :port

or 

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

or

kill -9 <pid>

or 

sh killport 8000

3
投票

它给了我一个错误

OSError: [Errno 98] Address already in use
。使用以下方法解决了我在 Ubuntu 中的错误。(
VERSION="18.04.4 LTS (Bionic Beaver)"
)

$ sudo netstat -lpn |grep :5000
tcp        0      0 0.0.0.0:5000            0.0.0.0:*               LISTEN      25959/uwsgi   

$ fuser -k -n tcp 5000
5000/tcp:            25959
 

希望它能帮助别人!


2
投票
sudo kill `sudo lsof -t -i:9001`

您不必添加

-9
信号选项


2
投票

xargs
可以是一个非常有用的命令。

你可以像这样传递命令

lsof -t -i :9001 | xargs sudo kill

它的作用: 它获取第一个命令的输出,在本例中是在端口上运行的进程,并将其传递给

sudo kill
.


2
投票
  • 获取在端口 3000 上运行的进程的 PID:

    lsof -i tcp:3000

  • 杀死进程

    kill -9 process_id

例子:

lsof -i tcp:3000

(输出中的 PID = 5805)
kill -9 5805

如果需要,请使用

sudo


2
投票

只需为您的

.bashrc
/
.zshrc
添加别名:

  1. 开启新终端
  2. 纳米.bashrc
  3. 向下滚动并添加别名:
    alias kp='sudo kill -9 `sudo lsof -t -i: "$1"`'
  4. ctrl + x +y
  5. 源.bashrc
  6. 韩元 9000

1
投票

它的两个步骤过程:

  1. 知道端口号上的进程ID。 8080(可以是任何)
  2. 杀死 id 8689 的进程(可以不同)

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

1
投票

你可以使用 node

来解决这个问题
npm install freethenport -g

然后

node freethenport 9001

1
投票

显示活动的 TCP 连接,计算机正在侦听的端口。

netstat -tupln

它会列出你所有的 pid 连接。查找并复制 pid 并运行以下命令。确保在以下命令中将 替换为实际 ID。

kill -9 <copied pid>

-9 用于强行终止连接。


1
投票

当使用较新版本的 Ubuntu 时,您将不再有

netcat
,而是使用
ss

ss -lptpn | grep 9001   
sudo kill <replace-with-process-id>

1
投票

sudo netstat -lpn |grep :8080

比得到这个进程的PID

杀 -9


0
投票

你也可以使用 xargs。只需运行以下命令,

sudo lsof -t -i:443 | xargs sudo kill -9


0
投票

在我的 ubuntu-22.04 机器上,这适用于端口 8000

fuser -k 8000/tcp

© www.soinside.com 2019 - 2024. All rights reserved.