当前位置: 首页 > Linux

如何查看进程的工作路径

时间:2023-04-06 18:23:04 Linux

进程的工作目录是什么?进程运行在哪个路径下?哪个路径是进程的工作目录(CurrentWoringDirectory,CWD)。这个概念就是这么简单。比如你在/home/mac下启动了一个进程,那么这个进程的工作目录就是/home/mac;如果您在/home/mac/bin下启动相同的程序,则该进程的工作目录变为/home/mac/bin。为什么需要了解进程的工作路径?如果了解进程的工作目录,就知道为什么在使用代码进行文件操作时,通常不写文件的绝对路径,而只写文件名。比如进程的工作目录是/home/mac,那么当创建一个名为a.txt的文件时,实际上创建的是文件/home/mac/a.txt。也就是说,其实我们可以简单的提供一个进程的相对路径。这个相对路径是相对于谁的?答案是进程的工作路径。解决bug我遇到这样一个问题,在使用其他库读取配置文件时,总是加载失败。该文件是通过相对路径读取的。由于图书馆没有打印出错误日志,所以很难直接排查原因。仔细分析,原来是配置文件所在路径下没有启动进程,导致进程找不到配置文件,所以出现了加载错误。如何查看进程的工作路径有几种方法方便查看。方法一使用pwdx命令,是最简单的方法。提供进程号,命令可以返回进程的工作目录。比如有一个进程号为17681的进程,使用命令$pwdx17681/home/mac/bin可以看到该进程的工作目录为/home/mac/bin。方法二使用重量级工具/proc/{pid},其原理在Coder的荒岛求生一文中有讲解《如何查看进程开启了多少线程》,在/proc/{pid}目录下有一个叫cwd的软件Connection,可以通过查看原始链接了解进程的工作路径。使用如下命令,$ll/proc/17681/cwdlrwxrwxrwx1macmac0Oct1004:30/proc/17681/cwd->/home/mac/bin,可以看到进程的工作目录和得到的路径通过方法1是一致的。总结使用pwdx和proc/{pid}可以很方便的查看进程的工作路径。还有一点……如果喜欢本文,请关注我的微信公众号码农荒岛求生,获取更多计算机内功知识。计算机内功决定程序员的职业高度