我需要显示在特定文件夹中运行的进程。 例如,有文件夹“ TEST ”和“ RUN ”。 3 个SQL文件是从 TEST 运行的,而 2 是从 RUN 运行的。因此,当我使用命令 ps xa 时,可以看到从 TEST 和 RUN 一起运行的所有进程。我要查看的进程仅从 TEST 文件夹运行,因此只有 3 。有命令,解决方案吗?
答案 0 :(得分:0)
您可以为此使用lsof
。
lsof | grep '/path/of/RUN'
。
如果要在同一命令中同时包含RUN和TEST
lsof | grep -E "/path/of/RUN|/path/of/TEST"
希望有帮助。
答案 1 :(得分:0)
您可以尝试fuser
来查看哪些进程打开了特定文件。或者,在Linux上,检查每个候选进程的/proc/12345/cwd
符号链接(将12345
替换为每个进程的ID)。
fuser TEST/*.sql
for proc in /proc/[1-9]*; do
readlink "$proc/cwd" | grep -q TEST && echo "$proc"
done
后者可能无法移植到其他U * x上,尽管有些可能提供类似的功能。