linux中查看进程

欢迎进入Linux社区论坛,与200万技术人员互动交流 >>进入

  进程是一个其中运行着一个或多个线程的地址空间和这些线程所需要的系统资源。一般来说,Linux系统会在进程之间共享程序代码和系统函数库,所以在任何时刻内存中都只有代码的一份拷贝。

  1,ps命令

  作用:ps命令主要用于查看系统中进程的状态。

  用法:ps [选项]

  主要选项如下:

  -e 显示所有进程

  -a 跟终端无关的进程 (BSD风格,不加横杆)

  -x 跟终端有关的进程

  -u 发起者

  -F 额外信息

  -f 显示完整信息

  -j 以作业的方式显示进程

  -H 显示进程的关系

  -o 自定义显示哪些字段

  单一的命令往往显示的结果不是很理想,这里我们可以多个选项同时使用。

  例:ps aux 命令可以获得终端上所有用户的有关进程的所有信息

  USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND

  root 1 0.0 0.1 2064 652 ? Ss 10:05 0:00 init [3]

  其中VSZ 虚拟地址大小

  RSS 物理内存大小

  例:例:ps ax

  pid tty stat time command

  1 ? Ss 0:00 init [3]

  其中 tty中?表示与终端无关

  stat(状态)

  D 不可中断 sleep

  S 可中断 sleep

  R 正在运行或可运行的

  T 停止态

  Z 僵尸态 父进程替子进程收尸

  父进程死的时候会先替子进程找到另外一个父进程

  x 死亡状态

  w paging

  状态的变化:stoped–sleep–ready–running

  注:sleep (可中断sleep 和不可中断sleep)

  PID 这个进程的ID,下面的PPID为父进程的ID

  在BSD中也会有:

  < 表示高优先级的进程

  N 低优先级

  + 属于某个前台组的进程

  s 某一个回话的leader进程

  l 线程加锁

  + 后台运行进程组

  例:ps -l

  [root@station100 ~]# ps -l

  F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD

  4 S 0 9706 9704 0 75 0 – 1166 wait pts/1 00:00:00 bash

  4 R 0 9908 9706 0 77 0 – 1052 – pts/1 00:00:00 ps

  F:表示这个进程的标志(flag),4表示用户为超级用户。

  S:表示这个进程的状态(STAT)。

  PID:这个进程的ID,下面的PPID为父进程的ID。

  C:CPU使用的资源百分比

  PRI:Priority(优先级)的缩写。

  NI:Nice值

  ADDR 这是核心功能,指出该进程在内存的那一部分,如果是运行的进程一般都是“-”

  SZ:用掉的内存大小

  WCHAN 当前进程是否正在运行,若为“-”表示正在运行。

  TTY:登录者的终端位置。

  TIME:用掉的CPU时间。

  CMD 所执行的命令。

  例:ps auxw –sort=rss

  按内存占用情况对进程排序

  例:ps auxw –sort=%cpu

  在进行系统维护时,如果CPU负载突然增加,而又不知道是哪一个进程造成的

  其他部分ps命令:

  To see every process on the system using standard syntax:

  ps -e

  ps -ef

  ps -eF 显示PID及PPID信息

  ps -ely 会显示nice值NI及优先级PRI

  To see every process on the system using BSD syntax:

  ps ax

  ps axu

  To print a process tree:

  ps -ejH

  ps axjf 相当于ps -aFH或afh 显示进程关系

  To get info about threads

  ps -eLf

  ps axms

  To get security info:

  ps -eo euser,ruser,suser,fuser,f,comm,label

  ps axZ

  ps -eM

  To see every process running as root (real & effective ID) in user format:

  ps -U root -u root 自定义显示格式

  To see every process with a user-defined format:

  ps -eo pid,tid,class,rtprio,ni,pri,psr,pcpu,stat,wchan:14,comm

  ps axo stat,euid,ruid,tty,tpgid,sess,pgrp,ppid,pid,pcpu,comm

  ps -eopid,tt,user,fname,tmout,f,wchan

  Print only the process IDs of syslogd:

  ps -C syslogd -o pid=

  Print only the name of PID 42:

  ps -p 42 -o comm=

[1][2]

不敢接受失败的人,往往是那些追求完美的人,

linux中查看进程

相关文章:

你感兴趣的文章:

标签云: