linux - 如何获取一个Linux线程的详细信息

标签 linux shell

我已经知道 ps -eftop 会列出线程信息。事实上,我通过top得到了一个pid。我想查看有关此线程的更多详细信息,我记得应该有一个 Linux 命令可以做到这一点。

谢谢@Shahbaz,这回答了我的问题。

但是我还是想澄清一下。

我想要的是:

我有一个pid,我想了解有关该线程的更多信息,例如线程在哪里启动,例如哪个文件夹?也许与内存有关。

我其实在等待答案

pmap pid

$pmap 498
498:   ./bin/redis-server redis.conf
0000000000400000    224K r-x--  /var/www/bin/redis-2.2.11/bin/redis-server
0000000000637000     12K rwx--  /var/www/bin/redis-2.2.11/bin/redis-server
000000000063a000     80K rwx--    [ anon ]
0000000011204000  57756K rwx--    [ anon ]
0000003dd7a00000    112K r-x--  /lib64/ld-2.5.so
0000003dd7c1b000      4K r-x--  /lib64/ld-2.5.so
0000003dd7c1c000      4K rwx--  /lib64/ld-2.5.so
0000003dd7e00000   1332K r-x--  /lib64/libc-2.5.so
0000003dd7f4d000   2048K -----  /lib64/libc-2.5.so
0000003dd814d000     16K r-x--  /lib64/libc-2.5.so
0000003dd8151000      4K rwx--  /lib64/libc-2.5.so
0000003dd8152000     20K rwx--    [ anon ]
0000003dd8200000    520K r-x--  /lib64/libm-2.5.so
0000003dd8282000   2044K -----  /lib64/libm-2.5.so
0000003dd8481000      4K r-x--  /lib64/libm-2.5.so
0000003dd8482000      4K rwx--  /lib64/libm-2.5.so
0000003dd8a00000     88K r-x--  /lib64/libpthread-2.5.so
0000003dd8a16000   2044K -----  /lib64/libpthread-2.5.so
0000003dd8c15000      4K r-x--  /lib64/libpthread-2.5.so
0000003dd8c16000      4K rwx--  /lib64/libpthread-2.5.so
0000003dd8c17000     16K rwx--    [ anon ]
00002b000ff11000      4K rwx--    [ anon ]
00002b000ff28000    416K rwx--    [ anon ]
00002b000ff91000    480K rwx--    [ anon ]
00002b0010fba000   1536K rwx--    [ anon ]
00007fff90700000     84K rw---    [ stack ]
ffffffffff600000   8192K -----    [ anon ]
 total            77052k  

我希望清楚。至少,下次我会发现很容易。再次感谢。

最佳答案

尚不清楚您要查找哪种信息,因此我将向您指出最终位置。参见

/proc/<pid>

其中有许多文件,这些文件要么是指向程序感兴趣的位置的链接,要么是cat -ed 将为您提供您能想到的任何信息。


/proc是一个目录。里面还有其他目录(看一下)。对于每个进程,都有一个以其 pid 命名的目录。在该目录中,有链接和特殊文件,称为/proc 条目。

每个特殊文件都可以具有读或写访问权限。如果它具有读取权限,您只需读取它(例如使用cat),它就会为您提供有用的信息。如果它具有写访问权限,则可能意味着它可以接受某种类型的数据来修改进程的某些参数。


I would like information about which folder this ruby command start?

如果你知道 grep 的 pid命令,执行 readlink /proc/<pid>/cwd查看进程的“当前工作目录”在哪里。


根据您的编辑:相同信息 pmap给你可以在/proc/<pid>/maps中找到.

关于linux - 如何获取一个Linux线程的详细信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15767458/

相关文章:

在Linux中编译C代码

linux - 如果 upstart 脚本中不存在,如何创建文件夹

shell - 如何使用 MONO 运行带有参数的程序?

php - 通过 PHP 运行 SQL 脚本

mongodb - 未检测到设置的主节点 [Mongo shell]

node.js - 尽管单独的 echo 语句,脚本输出被缓冲到一条消息中?

linux - 在 Windows 中使用 Golang 中的 SCP 复制远程 unix 主机中的远程文件

windows - Windows 切换焦点时击键会发生什么

python - 在安装了python3.5.2的Ubuntu16.04中,gedit有问题

bash - wget 并在一行中运行/删除 bash 脚本