Search code examples
linuxbashshellpid

how to get PIDs spawn from a particular folder


I have a program that in distributed mode creates a folder and spawns a bunch of sub processes. Is there any way to find all PIDs that were executed from this folder? Sort of opposite of $ pwdx pid

where you give a path name and you get a bunch of pids.

thanks


Solution

  • Reporting all processes which absolute path is inside '/usr/bin/' may be done like this:

    ls -l /proc/*/exe 2>/dev/null | grep /usr/bin/ | sed 's@.*/proc/@@;s@/exe.*@@;' | grep -v "self"
    

    Reporting all processes which working directory (working directory can be changed by a simple cd) is inside /tmp/a could be done like this:

    ps axo pid | xargs -n1 pwdx 2>/dev/null | grep ': /tmp/a' | sed 's/:.*//'