作为标题,我想找到在特定工作目录中运行的所有进程。 首先,我认为我可以使用这种方法:
ps
列出所有进程pwdx
用于上面的pid列表以获取工作目录列表但是我认为这很笨拙,有没有更好的解决方案?
答案 0 :(得分:1)
实现从Shell函数调用的Python的核心逻辑(因此只需要一个进程,而不是分解一堆单独的工具):
pids_for_dir() {
python - "$@" <<'EOF'
import sys, os.path, glob
target = os.path.abspath(sys.argv[1])
for name in glob.glob("/proc/*/cwd"):
if os.path.abspath(name) == target:
print(name.split('/')[-2])
EOF
}
...从您的外壳调用为:
pids_for_dir /tmp