我尝试使用tomcat /bin 目录中的 ./shutdown.sh 关闭tomcat . 但发现服务器没有正常关闭 . 因此我无法重启我的tomcat在端口 8080 上运行 .
/bin
./shutdown.sh
8080
我想杀死在 8080 上运行的tomcat进程 . 我首先想要在特定端口(8080)上运行进程列表,以便选择要杀死的进程 .
这 fuser 8080/tcp 将打印您在该端口上绑定的进程的PID .
fuser 8080/tcp
这_1111576_会杀死这个过程 .
仅适用于Linux . 更普遍的是 lsof -i4 (或IPv6用于6) .
lsof -i4
要列出监听端口8080的任何进程:
lsof -i:8080
要杀死任何侦听端口8080的进程:
kill $(lsof -t -i:8080)
或更猛烈地:
kill -9 $(lsof -t -i:8080)
( -9 对应于 SIGKILL - terminate immediately/hard kill 信号:请参阅List of Kill Signals和What is the purpose of the -9 option in the kill command? . 如果没有为 kill 指定信号,则发送TERM信号a.k.a. -15 或 soft kill ,这有时不足以终止进程 . ) .
-9
SIGKILL - terminate immediately/hard kill
kill
-15
soft kill
使用该命令
sudo netstat -plten |grep java
使用 grep java 作为 tomcat 使用 java 作为其进程 .
grep java
tomcat
java
它将显示具有端口号和进程ID的进程列表
tcp6 0 0 :::8080 :::* LISTEN 1000 30070621 16085/java
/java 之前的数字是进程ID . 现在使用 kill 命令来终止进程
/java
kill -9 16085
-9 暗示该进程将被强行杀死 .
您可以使用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
这个对我有用 . 这是原帖的链接:link
我会在特定端口上仅为LISTEN添加此单行:
kill -9 $(lsof -t -i:3000 -sTCP:LISTEN)
如果要终止在端口号8080上运行的进程,则首先需要找到8080端口进程标识号(PID),然后将其终止 . 运行以下命令查找8080端口号PID:
sudo lsof -t -i:8080
这里,
sudo - 要求管理员权限(用户ID和密码)的命令 .
lsof - 文件列表(也用于列出相关进程)
-t - 仅显示进程ID
-i - 仅显示与互联网连接相关的流程
:8080 - 仅显示此端口号中的进程
因此,您现在可以使用以下命令轻松终止PID:
sudo kill -9 <PID>
kill - 命令杀死进程
-9 - 强有力
您可以使用以下命令使用一个命令终止特定端口上的进程:
sudo kill -9 $(sudo lsof -t -i:8080)
有关更多信息,请参阅以下链接How to kill a process on a specific port on linux
这将打印到stdout <port_number> 上运行的所有内容的进程ID:
<port_number>
fuser -n tcp <port_number>
它还会向stderr打印一些东西,所以:
fuser -n tcp <port_number> 2> /dev/null
然后我们可以将这些进程ID提供给 kill 命令:
sudo kill $(fuser -n tcp <port_number> 2> /dev/null)
如果你做了很多,你也可以将它放在一个函数中:
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*
您将获得该过程的描述 . 现在使用kill或kill -9 pid . 容易被杀死 .
例如
netstat -ap | grep :8080
tcp6 0 0 :::8080 :::* LISTEN 1880/java
现在:
kill -9 1880
记得将所有命令运行为 root
root
试试这样,
sudo fuser -n tcp -k 8080
lsof -i tcp:8000 此命令列出有关在端口8000中运行的进程的信息
lsof -i tcp:8000
kill -9 [PID] 此命令终止进程
kill -9 [PID]
Linux :如果您知道端口,则可以使用此命令:
netstat -plten | grep LISTEN | grep 8080
AIX :
netstat -Aan | grep LISTEN | grep 8080
然后,您将获取第一列(例如:f100050000b05bb8)并运行以下命令:
rmsock f100050000b05bb8 tcpcb
杀人过程 .
Linux :如果您知道端口,首先可以找到此命令的PID:
netstat -tulpn
例:-
Local Address Foreign Address State PID/Program name :::3000 :::* LISTEN 15986/node
然后你接受杀戮过程 . 运行以下命令:
kill -9 PID
示例: -
杀了-9 15986
kill -9fuser 8080/tcp|xargs -n 1`` ,此命令还会终止使用TCP连接侦听端口8080的进程
kill -9
获取任务的PID并将其杀死 .
lsof -ti:8080 | xargs kill
sudo apt-get install psmisc (or sudo yum install psmisc) sudo fuser 80/tcp
结果:80 / tcp:1858 1867 1868 1869 1871
一个一个地杀死进程
杀死-9 1858
以@ veer7所说的为基础:
如果你想知道端口上的内容,请在杀死之前执行此操作 .
$ 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
使用'ps'和netstat报告的进程数
在Windows中,它将是 netstat -ano | grep "8080" ,我们收到以下消息 TCP 0.0.0.0:8080 0.0.0.0:0 LISTENING 10076
netstat -ano | grep "8080"
TCP 0.0.0.0:8080 0.0.0.0:0 LISTENING 10076
我们可以使用 taskkill /F /PID 10076 杀死PID
taskkill /F /PID 10076
17 回答
这
fuser 8080/tcp
将打印您在该端口上绑定的进程的PID .这_1111576_会杀死这个过程 .
仅适用于Linux . 更普遍的是
lsof -i4
(或IPv6用于6) .要列出监听端口8080的任何进程:
要杀死任何侦听端口8080的进程:
或更猛烈地:
(
-9
对应于SIGKILL - terminate immediately/hard kill
信号:请参阅List of Kill Signals和What is the purpose of the -9 option in the kill command? . 如果没有为kill
指定信号,则发送TERM信号a.k.a.-15
或soft kill
,这有时不足以终止进程 . ) .使用该命令
使用
grep java
作为tomcat
使用java
作为其进程 .它将显示具有端口号和进程ID的进程列表
/java
之前的数字是进程ID . 现在使用kill
命令来终止进程-9
暗示该进程将被强行杀死 .您可以使用lsof命令 . 这里的端口号是8090
此命令返回此端口上的打开进程列表 .
就像是…
要释放端口,请使用它终止进程(进程ID为75782)...
这个对我有用 . 这是原帖的链接:link
我会在特定端口上仅为LISTEN添加此单行:
kill -9 $(lsof -t -i:3000 -sTCP:LISTEN)
如果要终止在端口号8080上运行的进程,则首先需要找到8080端口进程标识号(PID),然后将其终止 . 运行以下命令查找8080端口号PID:
这里,
sudo - 要求管理员权限(用户ID和密码)的命令 .
lsof - 文件列表(也用于列出相关进程)
-t - 仅显示进程ID
-i - 仅显示与互联网连接相关的流程
:8080 - 仅显示此端口号中的进程
因此,您现在可以使用以下命令轻松终止PID:
这里,
kill - 命令杀死进程
-9 - 强有力
您可以使用以下命令使用一个命令终止特定端口上的进程:
有关更多信息,请参阅以下链接How to kill a process on a specific port on linux
这将打印到stdout
<port_number>
上运行的所有内容的进程ID:它还会向stderr打印一些东西,所以:
然后我们可以将这些进程ID提供给
kill
命令:如果你做了很多,你也可以将它放在一个函数中:
To know the pid of service running on particular port :
您将获得该过程的描述 . 现在使用kill或kill -9 pid . 容易被杀死 .
例如
netstat -ap | grep :8080
现在:
记得将所有命令运行为
root
试试这样,
lsof -i tcp:8000
此命令列出有关在端口8000中运行的进程的信息kill -9 [PID]
此命令终止进程Linux :如果您知道端口,则可以使用此命令:
AIX :
然后,您将获取第一列(例如:f100050000b05bb8)并运行以下命令:
杀人过程 .
Linux :如果您知道端口,首先可以找到此命令的PID:
例:-
然后你接受杀戮过程 . 运行以下命令:
kill -9 PID
示例: -
杀了-9 15986
kill -9
fuser 8080/tcp|xargs -n 1`` ,此命令还会终止使用TCP连接侦听端口8080的进程获取任务的PID并将其杀死 .
结果:80 / tcp:1858 1867 1868 1869 1871
一个一个地杀死进程
杀死-9 1858
以@ veer7所说的为基础:
如果你想知道端口上的内容,请在杀死之前执行此操作 .
使用'ps'和netstat报告的进程数
在Windows中,它将是
netstat -ano | grep "8080"
,我们收到以下消息TCP 0.0.0.0:8080 0.0.0.0:0 LISTENING 10076
我们可以使用
taskkill /F /PID 10076
杀死PID