脚本之家
你与百万开发者在一起
前言ps(ProcessStatus)命令是linux中最常见的命令之一,它用来列出当前系统运行中的进程的状态信息。当然了,它只显示命令执行时的进程状态,如果想要动态列出状态信息,可以选择使用top命令。那么通过ps命令我们能够知道进程的哪些信息呢?下面进行介绍。
命令基本介绍命令格式ps命令基本格式为:ps[options]
常用参数-A显示所有进程(同-e)-a显示当前终端的所有进程-u显示进程的用户信息-o以用户自定义形式显示进程信息-f显示程序间的关系
对于更多参数的介绍,可使用命令manps查看,这里不再赘述。
字段含义在介绍实例之前,需要先了解一下ps命令输出各字段的含义,这样我们才能更好地理解所展示的信息。常见字段的基本含义如下:
USER进程所有者的用户名PID进程号START进程激活时间%CPU进程自最近一次刷新以来所占用的CPU时间和总时间的百分比%MEM进程使用内存的百分比VSZ进程使用的虚拟内存大小,以K为单位RSS驻留空间的大小。显示当前常驻内存的程序的K字节数。TTY进程相关的终端STAT进程状态,包括下面的状态:D不可中断Uninterruptiblesleep(usuallyIO)R正在运行,或在队列中的进程S处于休眠状态T停止或被追踪Z僵尸进程W进入内存交换(从内核2.6开始无效)X死掉的进程高优先级N低优先级L有些页被锁进内存s包含子进程+位于后台的进程组;l多线程,克隆线程TIME进程使用的总CPU时间COMMAND被执行的命令行NI进程的优先级值,较小的数字意味着占用较少的CPU时间PRI进程优先级。PPID父进程IDWCHAN进程等待的内核事件名常见用法
下面来看看一些常见用法。
显示所有进程信息ps -APIDTTYTIMECMD1?00:00:03systemd2?00:00:00kthreadd4?00:00:00kworker/0:0H6?00:00:00mm_percpu_wq7?00:00:00ksoftirqd/08?00:00:02rcu_sched9?00:00:00rcu_bh10?00:00:00migration/?00:00:00watchdog/0(内容较多,其他部分略过。)
虽然能显示所有进程,但是显示的信息却不多,基本只显示了进程id和进程名,有时候并不实用。
显示所有进程基本信息相关参数-e
ps-efUIDPIDPPIDCSTIMETTYTIMECMDroot:52?00:00:03/sbin/initsplashroot:52?00:00:00[kthreadd]root:52?00:00:00[kworker/0:0H]root:52?00:00:00[mm_percpu_wq]root:52?00:00:00[ksoftirqd/0]root:52?00:00:02[rcu_sched]root:52?00:00:00[rcu_bh]root:52?00:00:00[migration/0](内容较多,其他部分略过。)
这个时候已经显示较多信息了。
显示指定用户的进程相关参数-u
ps-urootPIDTTYTIMECMD1?00:00:03systemd2?00:00:00kthreadd4?00:00:00kworker/0:0H6?00:00:00mm_percpu_wq7?00:00:00ksoftirqd/08?00:00:03rcu_sched9?00:00:00rcu_bh查看指定进程名相关信息
这个时候就需要配合grep使用了。例如,查看”java“相关进程:
ps-ef
grepjavaroot:55pts/:01:19java-jar./software/finalspeed/finalspeed_client.jarroot54234487:55pts/2:00:00grep--color=autojava查看进程占用内存,cpu利用率等信息
ps-auxUSERPID%CPU%MEMVSZRSSTTYSTATSTARTTIMECOMMANDroot10.00.?Ss10::03/sbin/initsplashroot20.00.?S10::00[kthreadd]root40.00.?S10::00[kworker/0:0H]root60.00.?S10::00[mm_percpu_wq]
从上面的信息,可以看到进程的所有者、cpu占用率、内存占用率等较为详细的信息。
显示线程相关信息相关参数-l
ps-elf查看进程间的关系
相关参数-H,进程间关系以树形图的方式展示:
ps-ejH查看进程的指定字段信息
有时候可能比较