加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

Shell脚本在Linux上获取进程ID

发布时间:2020-12-15 09:09:59 所属栏目:安全 来源:网络整理
导读:我想写一个shell脚本(.sh文件)来获取给定的进程ID。我想在这里做的是一旦我得到进程ID,我想杀死那个进程。我在Ubuntu(Linux)上运行。 我能够用一个命令做 ps -aux|grep rubykill -9 pid 但我不知道如何做通过一个shell脚本。 使用grep对ps的结果是一个坏主
我想写一个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.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读