代码之家  ›  专栏  ›  技术社区  ›  jedi_coder

bash中类似pgrep的高级进程搜索

  •  0
  • jedi_coder  · 技术社区  · 16 年前

    我需要在linux上的bash中找到某个java进程的pid。

    如果只有一个java进程,

    PID=$(pgrep java)
    

    作品。

    对于多个java进程,它变得更加复杂。手动,我运行 ,首先找到我需要的java进程的祖先,然后找到有问题的java进程。在bash中可以这样做吗?基本上我需要伪代码中的功能:

    Having `processname1` and `processname2`
    and knowing that `processname2` is in the subtree of 'processname1',
    find the pid of `processname2`.
    

    在本例中,java进程将 processname2 .

    1 回复  |  直到 16 年前
        1
  •  2
  •   earl    16 年前

    重新编写psuedo代码问题:查找所有 processname2 processname1 作为父进程。这可以使用以下嵌套直接表示 pgrep

    pgrep -P $(pgrep -d, processname1) processname2
    

    pgrep(1) 手册页:

      -d delimiter
             Sets the string used to delimit each process ID in the output
             (by default a newline).
    
      -P ppid,...
             Only match processes whose parent process ID is listed.
    

    进程名2 是