我尝试在tomcat /bin目录下使用。/shutdown.sh关闭tomcat。但发现服务器没有正确关闭。因此我无法重新启动我的tomcat运行在端口8080上。
我想终止在8080上运行的tomcat进程。我首先想要在特定端口(8080)上运行的进程列表,以便选择要终止哪个进程。
我尝试在tomcat /bin目录下使用。/shutdown.sh关闭tomcat。但发现服务器没有正确关闭。因此我无法重新启动我的tomcat运行在端口8080上。
我想终止在8080上运行的tomcat进程。我首先想要在特定端口(8080)上运行的进程列表,以便选择要终止哪个进程。
当前回答
这将杀死端口80上运行的程序
sudo fuser -k 80/tcp
其他回答
列出监听端口8080的所有进程:
lsof -i:8080
杀死任何监听8080端口的进程:
kill $(lsof -t -i:8080)
或者更激烈:
kill -9 $(lsof -t -i:8080)
(-9对应SIGKILL -立即终止/硬杀信号:参见kill信号列表和kill命令中-9选项的用途是什么?如果没有指定要终止的信号,则发送TERM信号,即-15或软终止,这有时不足以终止进程。
根据@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报告的进程号
如果端口上的服务没有响应,如何杀死进程
timeout 1 telnet localhost 8080 2>&1 | if grep -q 'Unable'; then sudo kill -9 $(sudo lsof -t -i:8080); fi
它的作用
启动“timeout”一秒,使telnet退出 ' 2>&1 | '管道错误消息,没有退出 如果错误消息包含'Unable',则运行代码杀死锁定端口8080的进程
这可以放在一个文件中,并从'sudo crontab'定期运行
我正在Yocto Linux系统上工作,该系统具有有限的可用Linux工具集。我想终止使用特定端口的进程(1883年)。
首先,我使用以下命令查看我们正在侦听的端口:
root@root:~# netstat -lt
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:hostmon 0.0.0.0:* LISTEN
tcp 0 0 localhost.localdomain:domain 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:9080 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:1883 0.0.0.0:* LISTEN
tcp 0 0 :::hostmon :::* LISTEN
tcp 0 0 localhost:domain :::* LISTEN
tcp 0 0 :::ssh :::* LISTEN
tcp 0 0 :::1883 :::* LISTEN
接下来,我找到了使用端口1883的进程的名称,方法如下:
root@root:~# fuser 1883/tcp
290
root@root:~# ps | grep 290
290 mosquitt 25508 S /usr/sbin/mosquitto -c /etc/mosquitto/mosquitto.conf
12141 root 8444 S grep 290
正如我们在上面看到的,使用端口1883的是程序/usr/sbin/ mosquito。
最后,我终止了这个过程:
root@root:~# systemctl stop mosquitto
我使用systemctl,因为在这种情况下,它是一个systemd服务。
kill -9 ' fuser 8080/tcp|xargs -n 1 ',该命令同时关闭监听8080端口的tcp连接进程