如何找到nginx进程的PID

ber*_*436 9 ps

我正在尝试解决 nginx 的问题,并认为我的机器上正在运行一个 nginx 进程。当我运行这个命令时,我得到了这个输出。

$ ps aux -P | grep nginx
1000      3947  0.0  0.0  13596   932 pts/0    S+   14:05   0:00 grep --color=auto nginx
Run Code Online (Sandbox Code Playgroud)

但是,如果我尝试终止进程 1000、3947、13596 或 932,则会出现如下错误:

bash: kill: (1000) - No such process

这是怎么回事?如何找到并终止 nginx 进程?

Rob*_*oun 6

我通常觉得pgrepps | grep. 您可能还想看看killall最终目标是否是按名称爆破一堆进程。


gle*_*man 5

ps aux -P 显示这些列:

$ ps aux -P | head -1
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
Run Code Online (Sandbox Code Playgroud)

只有第二列是pid。

警告:不要试图杀死随机 pid。

pid 3947 是在您收到提示时结束的 grep 进程,因此确实没有这样的进程。

如果有一个 nginx 进程,你会在 grep 输出中看到它。结论:nginx 没有在你的机器上运行。


Ste*_*eve 5

避免grep命令本身出现在ps输出中的一个常见技巧是将第一个字符放入字符类中,这样它就不会与其文字本身相匹配。IE,

$ ps aux | grep [n]ginx
Run Code Online (Sandbox Code Playgroud)

这样,grep模式将匹配“nginx”,但不匹配输出中显示的文字“[n]ginx” ps