linux ps命令显示一个特定的进程信息,如下说明
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 2846 0.0 0.0 1656 436 tty1 Ss+ Jun17 0:00 /sbin/mingetty
root 2853 0.0 0.0 1656 432 tty2 Ss+ Jun17 0:00 /sbin/mingetty
root 2855 0.0 0.0 1656 436 tty3 Ss+ Jun17 0:00 /sbin/mingetty
root 2857 0.0 0.0 1656 432 tty4 Ss+ Jun17 0:00 /sbin/mingetty
root 2859 0.0 0.0 1656 436 tty5 Ss+ Jun17 0:00 /sbin/mingetty
root 2867 0.0 0.0 1656 432 tty6 Ss+ Jun17 0:00 /sbin/mingetty
root 2955 1.6 0.5 17124 10348 tty7 Ss+ Jun17 17:17 /usr/bin/Xorg :
root 3208 0.0 0.0 4904 1488 pts/1 Ss Jun17 0:00 bash
root 3350 0.0 0.0 4904 1496 pts/2 Ss+ Jun17 0:00 bash
root 10355 0.0 0.0 4720 1048 pts/1 S+ 11:19 0:00 /bin/sh ./Start
root 10356 0.0 0.0 1648 432 pts/1 S+ 11:19 0:00 ./CheckProcess
root 11345 0.0 0.0 4904 1512 pts/3 Ss 11:25 0:00 -bash
我现在只要看PID为11345的进程的一些信息,如何办? 展开
2019-03-28
ps
ps(即进程状态)命令用于提供有关当前正在运行的进程的信息,包括其进程标识号(PID)。
进程,也称为任务,是程序的执行(即,运行)实例。系统为每个进程分配一个唯一的PID。
ps的基本语法是
ps [options]
当没有任何选项使用ps时,它会发送到标准输出,默认情况下是显示监视器,系统上当前至少有两个进程的四项信息:shell和ps。shell是一个程序,它在类Unix操作系统中提供传统的纯文本用户界面,用于发出命令并与系统交互,默认情况下在Linux上是bash。ps本身是一个进程,一旦显示输出它就会死掉(即终止)。
使用ps获取有关系统当前进程的更完整信息的常用方便方法是使用以下方法:
ps -aux | less
ps显示的进程可以限制为属于任何给定用户的进程,方法是通过grep(一种用于搜索文本的过滤器)输出输出。例如,属于具有用户名adam的用户的进程可以使用以下内容显示:
ps -ef | grep adam
Linux 下 取进程占用 cpu 最高的前10个进程
ps aux|head -1;ps aux|grep -v PID|sort -rn -k +3|head
linux 下 取进程占用内存(MEM)最高的前10个进程
ps aux|head -1;ps aux|grep -v PID|sort -rn -k +4|head
其中rsz是是实际内存
$ ps -e -o 'pid,comm,args,pcpu,rsz,vsz,stime,user,uid'
$ ps -e -o 'pid,comm,args,pcpu,rsz,vsz,stime,user,uid' | grep oracle | sort -nrk5
其中rsz为实际内存,上例实现按内存排序,由大到小
查看该进程打开的文件:lsof -p 11345
查看内存分配:lcat /proc/11345/maps
查看堆栈:pstack 11345
查看发出的系统调用:strace -p 11345
查看调用库函数:ltrace -p 11345
……
应该够用了吧
pidinfo 11345