用于在Linux上获取进程ID的Shell脚本
我想编写一个Shell脚本(.sh
文件)以获取给定的进程ID。我要在这里执行的操作是,一旦获得进程ID,就想杀死该进程。我正在Ubuntu(Linux)上运行。
我能够用这样的命令来做到这一点
ps -aux|grep rubykill -9 <pid>
但我不确定如何通过Shell脚本来实现。
回答:
使用grep
上的结果ps
是在脚本一个坏主意,因为时间一定比例也将匹配你刚才援引的grep的过程。该命令pgrep
避免了此问题,因此,如果您需要知道进程ID,那是一个更好的选择。(请注意,当然,可能有许多匹配的过程。)
但是,在您的示例中,您可以使用类似的命令pkill
杀死所有匹配的进程:
pkill ruby
顺便说一句,您应该意识到,-9
在几乎每种情况下,使用都是多余的(ho ho)-在“无用的套用kill -9
信函” 文本中有一些有用的建议:
不不不。不要使用
kill -9
。它并没有给过程一个干净的机会:
- 关闭插座连接
- 清理临时文件
- 通知其孩子它要消失了
- 重置其终端特性
等等,依此类推。
通常,发送15,然后等待一两秒钟,如果不起作用,则发送2,如果不起作用,则发送1。如果不起作用,请删除二进制文件,因为程序的行为不当!
不要使用
kill -9
。不要带出联合收割机只是为了整理花盆。
以上是 用于在Linux上获取进程ID的Shell脚本 的全部内容, 来源链接: utcz.com/qa/419986.html