根据进程名获得pid
pidof 进程名
查看进程树
pstree -s -p 5280
linux中根据进程的PID值来查找执行文件的及其路径
lsof -p PID
Linux在启动一个进程时,系统会在/proc下创建一个以PID命名的文件夹,在该文件夹下会有我们的进程的信息,其中包括一个名为exe的文件即记录了绝对路径,通过ll或ls –l命令即可查看。
ll /proc/PID
cwd符号链接的是进程运行目录;
exe符号连接就是执行程序的绝对路径;
cmdline就是程序运行时输入的命令行命令;
environ记录了进程运行时的环境变量;
fd目录下是进程打开或使用的文件的符号连接。
根据pid查看进程名
grep "Name:" /proc/5884/status
strace、ltrace、sar
strace跟踪程序使用的底层系统调用,可输出系统调用被执行的时间点以及各个调用耗时;而ltrace用来 跟踪进程调用库函数的情况。pstack工具对指定PID的进程输出函数调用栈。
strace -f -o vim.strace vim: 跟踪vim及其子进程的运行,将输出信息写到文件vim.strace
-f :除了跟踪当前进程外,还跟踪其子进程。
-o file :将输出信息写到文件file中,而不是显示到标准错误输出(stderr)。
-p pid :绑定到一个由pid对应的正在运行的进程。此参数常用来调试后台进程。
ltrace -p 234: 跟踪一个pid为234的已经在运行的进程
strace在跟踪系统调用的时候不需要动态库,而ltrace是根据动态库来分析程序运行的.ltrace只能跟踪动态库,不能跟踪静态库.
ltrace与strace都可以指定PID,即对运行中的程序进行跟踪.
ltrace -p PID与strace -p PID
ltrace与strace都可以跟踪程序fork或clone子进程.
ltrace是用-f参数,而strace是用-f(fork/clone)和-F(vfork).