0

从阅读文档和在线来看,大多数人一直在说要杀死 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。

谢谢!

4

1 回答 1

1

进程 ID ( pid) 由操作系统在进程启动时即时分配。它是独一无二的,因为没有两个进程具有相同的 ID。但是,不能保证实际值从一次进程运行到另一次运行是相同的。考虑它的最佳方式就像那些“正在服务”的票:

请取一个号码

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

pgrep (process name here)

此外,如果您只想终止该进程,您甚至可以跳过上述步骤并使用:

pkill (process name here)
于 2012-09-29T17:09:12.873 回答