Linux-找出进程的当前工作目录?


11

如果我有一个进程PID X,如何找出它在哪个目录中运行?我可以看到ps aux | grep X调用它的完整命令行。但是,在这种情况下,它是./script.sh,我想看看script.sh它正在运行。

Answers:


11

问题/proc/PID/exe在于,对于shell脚本,它显示了shell的位置。问题/proc/PID/cwd在于,它显示了进程的当前工作目录。如果该过程更改目录,则将反映在该符号链接的目标中。

这将显示启动脚本时$ PWD的含义(用您感兴趣的进程ID代替在看到“ PID”的位置):

procdir=$(grep -az "\bPWD" /proc/PID/environ); echo $procdir

或者简单地:

grep -az "\bPWD" /proc/PID/environ

这将显示启动它的命令,因此您可以查看使用相对还是绝对目录:

proccmd=$(grep -az PROC_NAME /proc/PID/cmdline); echo $proccmd

或者简单地:

grep -az PROC_NAME /proc/PID/cmdline

这些一起可以显示正在运行的脚本。对于从一开始的./所有您就是procdir


pwdx比这更好。
比约恩

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.