找出确切的node.js应用程序的PID

找出确切的node.js应用程序的PID

这是我的 ps aux 的输出:

ps aux | grep "node"
root      2501  0.0  3.4 720400 68512 ?        Sl   16:09   0:03 node /etc/skbx/host/skbx.js 8081 tula13 8082 8084 8085 10.8.0.6
root     20586  0.0  0.1  17396  2664 pts/16   S+   21:29   0:00 grep --color=auto node

忽略第二个,我们有一个节点进程。我需要在 bash 中准确找出正在执行 skbx.js 的节点进程的 PID。

我怎么能这样做呢?谢谢。

答案1

一般来说,如果您正在查找已知命令行的 PID,pgrep则更可取,ps | grep因为您不需要过滤输出来提取 PID。您可以使用pgrepwith-f来匹配完整的命令行:

pgrep -f 'node /etc/skbx/host/skbx.js'

您还可以通过父进程 ID 和控制终端等条件来定位进程。


如果没有pgrep安装,可以grep在管道中使用。在下面的示例中,我们在提供的模式中使用字符类grep来防止grep其自身出现在输出中。这比通过管道将输出传递到grep -v grep或类似的输入要少:

ps aux | grep '[n]ode /etc/skbx/host/skbx.js' | awk '{print $2}'

grep输出中列出的命令将ps包含方括号文字,这些文字与 所使用的结果模式不匹配grep

相关内容