目前我做的到以下明确的所有进程端口如何找到一个过程,在一个单一的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