需要使用xargs製作快捷命令

需要使用xargs製作快捷命令

我總是想殺死一個監聽端口 3000 的進程 id。

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

相關內容