重定向ps命令的输出,获取进程ID并使用Shell脚本终止该进程

5

我希望编写一个shell脚本,以查找给定用户运行的进程并通过获取相应的进程ID来终止该进程。

就像这样:

ps -ef | grep dinesh

在此之后,我得到的输出如下所示。
dinesh 19985 19890  0 11:35 pts/552  00:00:00 grep dinesh

这里的19985是进程ID。我想要结束该进程。

我该如何使用脚本实现这个目标?

我需要解析ps命令输出并获取进程ID。

提前感谢您的帮助。

2个回答

18
kill `ps -ef | grep dinesh | awk '{ print $2 }'`

非常感谢你,nab。:)这非常有用。 - Dinesh
它也可以与ps aux _kill ps aux | grep dinesh | awk '{ print $2 }'_一起使用。 - Laoneo

5
如果有多个进程由字符串“dinesh”定义,怎么办?grep进程本身呢?以下是更完整的答案: ps -ef | grep dinesh | grep -v grep | awk '{print $2}' | xargs kill -9 其中,“grep -v grep”用于排除grep进程本身。

2
短语:ps -ef | awk '/d[i]nesh/{print $2}',方括号是一个巧妙的技巧,可以避免awk进程本身出现在ps输出中。 - ernesto

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接