gpt4 book ai didi

linux - 与 Linux 上的 pid 和进程混淆

转载 作者:太空宇宙 更新时间:2023-11-04 11:28:43 24 4
gpt4 key购买 nike

通过阅读文档和在线,大多数人都说要在 Linux 中终止进程,只需要命令 kill "pid"。

For example to kill memcached would be kill $(cat memcached.pid)

但是对于几乎所有我试图终止的进程(包括上面的进程)来说,这都行不通。我设法让它与不同的命令一起工作:

ps aux | grep (process name here)

无论出于何种原因,该命令都会获得不同的 pid,这在终止程序时会起作用。

我想我的问题是,为什么会有不同的 pid? id 的意义不是唯一的吗?为什么 celery、memcached 和其他进程在使用 aux | 时都有不同的 pid grep 命令,与 .pid 文件中的 pid?这是我的配置中的某种错误还是应该是这样的?

此外,从哪里可以获得 Linux 中可执行文件的所有参数和描述?

我知道“man”命令对某些功能很有用,但它不适用于许多可执行文件,例如 celery。

谢谢!

最佳答案

进程 ID (pid) 由操作系统在进程启动时即时分配。从没有两个进程具有相同 ID 的意义上说,它是独一无二的。但是,不保证实际值在流程的一次运行与另一次运行之间是相同的。最好的理解方式就像那些“正在服务”的门票:

please take a number

您是正确的,您可以通过 psgrep 查找 ID,尽管您可能会发现使用它更容易:

pgrep (process name here)

另外,如果你只是想杀死进程,你甚至可以跳过上面的步骤并使用:

pkill (process name here)

关于linux - 与 Linux 上的 pid 和进程混淆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12654615/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com