首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在单个bash脚本中找到进程并终止它

如何在单个bash脚本中找到进程并终止它
EN

Stack Overflow用户
提问于 2012-04-08 16:53:18
回答 3查看 814关注 0票数 1

目前,我执行以下操作来清除端口上运行的所有进程

代码语言:javascript
复制
lsof -i :10000

我得到了

代码语言:javascript
复制
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)

然后我杀了它

代码语言:javascript
复制
kill 10427

我正在寻找一种方法来简化上述过程。我猜解决方案与管道输出并杀死它有关。类似于(我想,这里我假设$1是10427)。

代码语言:javascript
复制
lsof -i :10000 | kill $1

我没有做太多的bash脚本,所以任何帮助都会很好。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-04-08 16:57:45

我想你想要像这样的

代码语言:javascript
复制
fuser -k -n tcp 10000

lsof soultion更像是

代码语言:javascript
复制
lsof -i :10000|tail -n +2|awk '{print $2}'|xargs -r kill
票数 4
EN

Stack Overflow用户

发布于 2012-04-08 16:58:48

我认为Michaels的回答是最好的,但仅供参考,您也可以这样做:

代码语言:javascript
复制
PID=`lsof -i :10000 | awk 'NR == 2 {print $2}'`
kill $PID
票数 1
EN

Stack Overflow用户

发布于 2012-04-08 19:37:55

或者使用这个!

代码语言:javascript
复制
kill $(lsof -i :www | awk '{print $2}' | grep -v PID)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10061610

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档