需要使用 xargs 创建快捷命令

需要使用 xargs 创建快捷命令

我总是想杀死一个监听端口 3000 的进程。所以目前我正在使用,

1.lsof -i tcp:3000

将输出如下内容

COMMAND  PID   USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
ruby    6697   xxxx   5u  IPv4 251982      0t0  TCP *:3000 (LISTEN)


我将使用2来终止 PID 。kill -9 6697

我想创建一个可以自动执行此过程的 bash 程序。

我尝试使用 xargs 来获取第一个命令输出的 PID,但是失败了。

答案1

首先,您需要-tlsof 选项,它仅发出 pid。您也可以为 kill 提供 pid 列表,因此:

kill -9 $(lsof -ti tcp:3000)

如果你经常这样做,可以创建一个别名

alias kill3000='kill -9 $(lsof -ti tcp:3000)'

答案2

下面是(没有xargs):

lsof -i tcp:8080 | while read cmd pid rest; do ((pid)) && kill -9 $pid; done

相关内容