目前我做的到以下明確的所有進程端口如何找到一個過程,在一個單一的bash腳本殺死它
lsof -i :10000
運行,我得到
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
Google 10427 user 60u IPv4 0x162adea8 0t0 TCP localhost:52478->localhost:ndmp (ESTABLISHED)
Google 10427 user 112u IPv4 0x16289b98 0t0 TCP localhost:52483->localhost:ndmp (ESTABLISHED)
然後我殺了它
kill 10427
我正在尋找一種方法來簡化上述過程。 我猜測解決方案與管道輸出和殺死它有關。 就像(我想,在這裏我假設1美元是10427)。
lsof -i :10000 | kill $1
我沒有做太多的bash腳本所以任何幫助將是巨大的。
謝謝,我得到它的工作。我在osx上,xargs似乎沒有-r選項(我檢查了手冊頁[man](http://developer.apple.com/library/mac/#documentation/Darwin/Reference/ManPages /man1/xargs.1.html))應該提到這一點。該命令也可以在沒有-r的情況下運行。你介意告訴我-r做了什麼? – elliance 2012-04-08 10:32:20
'r'標誌用於GNU xargs,意味着如果標準輸入爲空(即,如果awk不輸出任何內容,則不運行kill)時不應運行該命令。 – 2012-04-08 11:06:31
謝謝,@EmilVikström,是的,股票osx xargs不接受'-r',但是,如果你有macports,你可以使用'gxargs'(最有可能的'findutils'端口)。另外osx'fuser'可能不會做到這一點。 – 2012-04-08 16:50:58