我有freebsd中正在运行的进程的pid。 如何获取当前目录?freebsd:正在运行的进程的当前目录进程号
3
A
回答
3
你可以得到当前工作目录的inode编号与
fstat -p $PID
它看起来像lsof的会给你当前工作目录的人类可读的形式,但我们不会对任何安装本地的FreeBSD机器,所以我无法验证。
-1
/proc/$ PID/cwd包含程序当前工作目录的符号链接。
3
fstat可以找到inode号码和文件系统,并找到可以找到正确的目录。
试试这个:
fstat -p $$|perl -ane '$F[3] eq "wd" && system("find",$F[4],"-xdev","-inum",$F[5],"-print");'
当非root身份运行,发现将可能输出相当多的“权限被拒绝”,用户可以在$F[3]
前面插入close(STDERR);
(第一后避免信息单引号)。
1
在FreeBSD的更新版本中,可以使用procstat -f $PID
,它显示路径名,如果它仍在内核名称缓存中。
相关问题
- 1. 在当前目录中列出正在运行的进程
- 2. linux-kernel中进程的当前目录
- 3. 在当前正在运行的进程上执行操作
- 4. 运行PHP进程的当前活动
- 5. 在当前用户下运行进程
- 6. NSIS - 在运行之前设置进程的工作目录
- 7. 获取正在运行的进程的目录路径ID
- 8. 在运行时暂停当前进程中的所有线程
- 9. Python检查当前进程是否正在运行?
- 10. 以编程方式更改进程的当前工作目录
- 11. FreeBSD的守护进程库
- 12. 获取正在运行的进程给定的进程句柄
- 13. 正在运行的进程的Python REPL
- 14. 对所有正在运行的进程不显示进程MainWindowTitle
- 15. 执行shell进程时设置当前工作目录
- 16. 正在运行的任务进程ID
- 17. 重定向正在运行的进程
- 18. 断开与正在运行的进程
- 19. 硒离开正在运行的进程?
- 20. 正在运行的进程列表
- 21. 列出正在运行的进程
- 22. 在JAVA中处理当前正在执行的进程
- 23. 当前正在运行的C程序如何找出它所在的目录?
- 24. 如何确定当前运行的进程是否为父进程?
- 25. Rails是否在当前的Ruby进程中运行?
- 26. 列出VB.NET 2.0当前在windows上运行的所有进程
- 27. 如何在FreeBSD的命令行中获取java进程的进程ID,sh
- 28. 终止正在进行的过程和当前活动
- 29. 如何通过进程ID控制当前正在运行的PowerPoint实例?
- 30. 如何从DDMS中隐藏当前正在运行的进程清单
需要注意的是`/ proc`文件系统并不一定适用于FreeBSD的所有安装。 – 2009-07-21 10:47:27
这适用于Linux,但似乎不属于FreeBSD/proc的一部分。请参阅procfs手册页:http://www.freebsd.org/cgi/man.cgi?query=procfs – 2009-07-21 15:10:40