Shell脚本在Linux上获取进程ID

前端之家收集整理的这篇文章主要介绍了Shell脚本在Linux上获取进程ID前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想写一个shell脚本(.sh文件)来获取给定的进程ID。我想在这里做的是一旦我得到进程ID,我想杀死那个进程。我在Ubuntu(Linux)上运行。

我能够用一个命令做

ps -aux|grep ruby
kill -9 <pid>

但我不知道如何做通过一个shell脚本。

使用grep对ps的结果是一个坏主意在一个脚本,因为一些比例的时间它也将匹配您刚刚调用的grep进程。命令 pgrep避免了这个问题,所以如果你需要知道进程ID,这是一个更好的选择。 (注意,当然可能有很多进程匹配。)

但是,在您的示例中,您可以使用类似的命令pkill来终止所有匹配的进程:

pkill ruby

顺便说一句,你应该知道,在几乎每一种情况下使用-9都是过度杀戮(ho ho) – 在“无用的kill -9 form letter的使用”的文本中有一些有用的建议:

No no no. Don’t use kill -9.

It doesn’t give the process a chance to cleanly:

  1. shut down socket connections
  2. clean up temp files
  3. inform its children that it is going away
  4. reset its terminal characteristics

and so on and so on and so on.

Generally,send 15,and wait a second or two,and if that doesn’t
work,send 2,and if that doesn’t work,send 1. If that doesn’t,
REMOVE THE BINARY because the program is badly behaved!

Don’t use kill -9. Don’t bring out the combine harvester just to tidy up the flower pot.

猜你在找的Bash相关文章