我试图在命令行中为 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'
您想使用反引号,而不是常规刻度:
sudo kill -9 `sudo lsof -t -i:9001`
如果这不起作用,您还可以使用 $()
进行命令插值:
sudo kill -9 $(sudo lsof -t -i:9001)
您可以使用
fuser -n tcp -k 9001
对于 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
sudo
终止进程
在 Ubuntu 终端中终止端口的最佳方法是使用 fuser
命令;例如:
fuser -k 9001/tcp
这会默认发送 SIGKILL
。
有些进程使用普通的 netstat 命令没有显示,所以您必须使用 sudo
检查它。
做sudo netstat -lpn |grep :8080
。系统运行的进程不显示 PID,要获取此进程的 PID,您必须使用 sudo
运行它
然后使用端口 8080
杀死进程。您可能还必须在此处使用 sudo
。所以要杀死这个进程使用 sudo kill -9 PID
终止在端口号 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).
如需更多信息,您可以访问我的blog
使用 killport 命令:
sh killport 9001
要下载 shell,您可以使用 wget
:
wget https://cdn.rawgit.com/abdennour/miscs.sh/e0aac343/killport
要首先根据端口终止进程,我们必须找出给定端口的相关 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
用这个:
sudo kill -9 $(lsof -t -i:9001)
sudo kill -9 $(sudo lsof -t -i:9001)
为我工作,或者您可以使用
sudo kill -9 `sudo lsof -t -i:9001`
将 9001 替换为您想要的端口号。
只需在终端输入以下命令
kill -9 $(lsof -t -i:3000)
杀死端口:
sudo
对显示进程 ID 很重要。
$ sudo netstat -antlp | grep 45136
tcp 0 0 0.0.0.0:45136 0.0.0.0:* LISTEN **-**
$ kill -9 45136
使用命令
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 表示进程将被强制终止。
如果我是你,我会用
fuser -k -n tcp PORT
kill -9 PID
尝试这个:
lsof -i :port
or
sudo kill $(sudo lsof -t -i:8000)
or
kill -9 <pid>
or
sh killport 8000
kill -9 <pid>
非常适合我!
它给了我一个错误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
希望它会帮助别人!
sudo kill `sudo lsof -t -i:9001`
您不必添加-9
信号选项
xargs
可能是一个非常有用的命令。
您可以像这样管道命令
lsof -t -i :9001 | xargs sudo kill
它的作用:它获取第一个命令的输出,在本例中是在端口上运行的进程,并将其传递给 sudo kill
。
获取在端口 3000 上运行的进程的 PID:lsof -i tcp:3000
杀死进程 kill -9 process_id
示例:
lsof -i tcp:3000
(输出中的 PID = 5805)
kill -9 5805
如果需要,使用 sudo
您可以在终端中使用以下命令
fuser -k 3000/tcp
它的两个步骤过程:
知道端口号上的进程 ID。 8080(可以是任何)杀死该ID的进程 8689(可以不同) fuser -n tcp 8080 #o/p 8080/tcp 8689 kill -9 8689
你可以使用 node 来解决这个问题
npm install freethenport -g
然后
node freethenport 9001
显示活动的 TCP 连接,即计算机正在侦听的端口。
netstat -tupln
它将列出您沿 pid 的所有连接。找到并复制 pid 并运行以下命令。确保在以下命令中将 id 替换为实际 id。
kill -9 <copied pid>
-9 用于强行终止连接。
使用较新版本的 Ubuntu 时,您将不再使用 netcat
,而是使用 ss
ss -lptpn | grep 9001
sudo kill <replace-with-process-id>
sudo netstat -lpn |grep :8080
而不是得到这个进程的PID
杀死 -9
您也可以使用 xargs。只需运行以下命令,
sudo lsof -t -i:443 | xargs 须藤杀 -9
不定期副业成功案例分享
sudo kill -9 $(sudo lsof -t -i:9001)
sudo kill
无法终止进程时,@putra.koreng 的方法效果很好os.system("fuser -k 8080/tcp");