0

可以 pkill 保证永远不会发生以下情况:

  1. 我使用 pkill -f "abc"

  2. pkill 按名称查找进程并记住 pid

  3. 进程结束

  4. Linux 使用相同的 pid 启动一个新进程

  5. pkill 杀死在第 4 步开始的进程

4

1 回答 1

1

Pids 确实会包装并最终会被重用。但是,分配给最近运行的进程的 pid 不会很快被重用。因此,在实践中,您担心的问题永远不会发生。据我所知,理论上是可行的。然而,这将意味着

  • pkill 运行速度很慢,以至于可以在找到进程和杀死它之间分配一大堆新的进程 ID
  • 系统的其余部分运行得足够快,可以创建所有这些进程并释放最近使用的 pid。
  • 正如评论中指出的那样,您是 root 或进程以同一用户身份运行

可能有某种攻击 pkill 的方法,所以它很慢,但这种攻击几乎肯定是内核错误。我从来没有遇到过担心这个问题是正确的设计决策的情况。

于 2017-09-28T17:25:28.650 回答