我试图在命令行中为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.

我也尝试过杀“lsof-t-I:9001”


当前回答

您希望使用倒勾,而不是常规勾号:

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

如果这不起作用,还可以使用$()进行命令插值:

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

其他回答

使用命令

 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表示进程将被强制终止。

sudo netstat-lpn | grep:8080

得到这个过程的PID

杀死-9

您希望使用倒勾,而不是常规勾号:

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

如果这不起作用,还可以使用$()进行命令插值:

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

终止端口:

sudo对于显示进程id很重要。

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

$ kill -9 45136

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

您可以使用这样的管道命令

lsof -t -i :9001 | xargs sudo kill

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