ps:将某个时间点的进程运行情况选…

来源:互联网 发布:python软件开发 编辑:程序博客网 时间:2024/06/05 16:13

ps这个命令的man page 不是很好查阅,因为很多不同的Unix都使用这儿ps来查阅进程的状态,为了要符合不同版本的需求,所以这个man page写的非常庞大。所以一般我会选择记住两个命名组合,一个是"ps -l" 查看自己bash程序的进程,"ps aux"查看系统所以运行程序的进程

ps -l 仅查看自己的bash相关的进程

[root@localhosttest]#ps -l

F S  UID  PID PPID  CPRI  NI ADDR SZWCHAN TTY         TIME CMD

4 S    0217521710800 -  1315 -     pts/000:00:00 bash

0 S    0221210800 - 190946 -    pts/000:00:53 java

4 R    0699121750800 -  1219 -     pts/000:00:00ps

各个列的含义:

F:代表这个进程标志,说明这个进程的权限,常见的号码有

1、若为4表示此进程的权限为root.

2、若为0则表示此子进程仅可进行复制而无法实际执行

S:代表这个进程的状态,主要的状态有

1R(running):该进程正在进行中。

2S(sleep):该进程目前正在睡眠状态,但是可以被唤醒。

3D:不可被唤醒的睡眠状态,通常这个进程可能在等待I/O的情况

4Tstop):停止状态,可能是后台暂停(Ctrl+Z),或者执行出错

5Zzombie:“僵尸状态,进程已经终止但却无法删除至内存外

UIDPIDPPID:分别表示该进程被UID所拥有、进程的PID号码、此进程父进程的PID号码。

C:代表CPU的使用率,单位为百分比。

PRINI:代表此进程被CPU执行的优先级,数字越小代表该进程越快被CPU执行。

SZ:代表此进程用掉了多少内存。

TIME:使用掉的CPU时间,注意,是吃进程实际花费CPU的运行时间,而不是系统时间。

CMD:触发该进程的命令为何。

查看系统所有进程:ps aux

[root@localhosttest]#ps aux

USER      PID %CPU%MEM   VSZ   RSSTTY     STAT START   TIMECOMMAND

root        10.00.129001444 ?       Ss  Dec14  0:01 /sbin/init

root        20.00.000 ?       S   Dec14  0:00 [kthreadd]

root        30.00.000 ?       S   Dec14  0:00 [migration/0]

root        40.00.000 ?       S   Dec14  0:00 [ksoftirqd/0]

root        50.00.000 ?       S   Dec14  0:00 [migration/0]

root        60.00.000 ?       S   Dec14  0:00 [watchdog/0]

root        70.00.000 ?       S   Dec14  0:01 [events/0]

.......!

从上可以发现,ps -lps aux显示的项目并不相同!在ps aux显示的项目中,各个字段的意义如下所示:

USER:该进程由那个用户创建;

PID:该进程进程的标识符;

%CPU:该进程使用掉的CPU的百分比;

%MEM:该进程所占用的物理内存百分比;

VSZ:该进程使用掉的虚拟内存量(KB);

RSS:该进程占用的固定的内存量(KB);

TTY:该进程是在那个终端机上面运行,若与终端机无关则显示?,tty1~tty6是本机上面的登录者程序,若为pts/0这表示为由网络连接进主机的进程。

STAT:该进程目前的状态,跟ps -l S标识相同(R/S/T/Z;

START:该进程被触发启动的时间;

TIMe:该进程实际使用CPU的运行时间;

COMMAND:该进程的实际命令;

 

 

linux系统下ps -auxps -ef命令参数的作用及区别详

linux系统中,ps是简单而强大的进程查看命令,而ps -auxps -ef是打印出所有进程。其中的参数详解如下:ps -aux是以BSD方式显示a显示所有用户的进程(show processes for all users)u显示用户(display

linux系统中,ps是简单而强大的进程查看命令,而ps -auxps -ef是打印出所有进程。其中的参数详解如下:
ps -aux
是以BSD方式显示

  • a 显示所有用户的进程(show processes for all users)
  • u 显示用户(display the process's user/owner)
  • x 显示无控制终端的进程(also show processes not attached to aterminal)

ps -ef是以System V方式显示,该种方式比BSD方式显示的多

  • e 显示所有用户的进程(all processes)此参数的效果和指定"a"参数相同
  • f ASCII字符显示树状结构,表达程序间的相互关系(ASCII art forest)

下面看两个命令各自显示哪些内容:

$ps -aux

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

root 1 0.0 0.0 4828 516 ?Ss 2014 1:28 init[3]

root 2 0.0 0.0 0 0 ? S 2014 0:00[kthreadd]

root 3 0.0 0.0 0 0 ? S 2014 0:43[migration/0]

root 4 0.0 0.0 0 0 ? S 2014 7:34[ksoftirqd/0]

root 5 0.0 0.0 0 0 ? S 2014 0:01[migration/0]

root 6 0.0 0.0 0 0 ? S 2014 0:03[watchdog/0]

root 7 0.0 0.0 0 0 ? S 2014 3:04[migration/1]

root 8 0.0 0.0 0 0 ? S 2014 0:01[migration/1]

root 9 0.0 0.0 0 0 ? S 2014 1:44[ksoftirqd/1]

root 10 0.0 0.0 0 0 ? S 2014 0:01[watchdog/1]

root 11 0.0 0.0 0 0 ? S 2014 2:21[migration/2]

root 12 0.0 0.0 0 0 ? S 2014 0:01[migration/2]

其中显示了:

  • USER 哪个用户启动了这个命令
  • PID 进程ID
  • CPU CPU占用率
  • MEM 内存使用量
  • VSZ 如果一个程序完全驻留在内存的话需要占用多少内存空间
  • RSS 当前实际占用了多少内存
  • TTY: 终端的次要装置号码(minor device number of tty)
  • STAT 进程当前的状态("S":中断sleeping,进程处在睡眠状态,表明这些进程在等待某些事件发生--可能是用户输入或者系统资源的可用性;"D":不可中断uninterruptible sleep;"R":运行runnable;"T":停止traced or stopped;"Z":僵死a defunct zombie process)
  • START 启动命令的时间点
  • TIME 进程执行起到现在总的CPU暂用时间
  • COMMAND 启动这个进程的命令

$ps -ef

UID PID PPID C STIME TTY TIME CMD

root 1 0 0 2014 ? 00:01:28 init [3]

root 2 0 0 2014 ? 00:00:00 [kthreadd]

root 3 2 0 2014 ? 00:00:43[migration/0]

root 4 2 0 2014 ? 00:07:34[ksoftirqd/0]

root 5 2 0 2014 ? 00:00:01[migration/0]

root 6 2 0 2014 ? 00:00:03 [watchdog/0]

root 7 2 0 2014 ? 00:03:04[migration/1]

root 8 2 0 2014 ? 00:00:01[migration/1]

root 9 2 0 2014 ? 00:01:44[ksoftirqd/1]

root 10 2 0 2014 ? 00:00:01[watchdog/1]

root 11 2 0 2014 ? 00:02:21[migration/2]

root 12 2 0 2014 ? 00:00:01[migration/2]

其中显示了:

  • UID 用户号
  • PID 进程ID
  • PPID 父进程号
  • C CPU占用率
  • TTY 终端的次要装置号码(minor device number of tty)
  • TIME 进程执行起到现在总的CPU暂用时间
  • COMMAND 启动这个进程的命令

一般使用这两个命令的作用是查看预期的进程是否启动,或者杀死指定的进程,例如查看memcached进程是否正常启动:

$ps -ef | grep 'memcached'

work 14896 5034 0 16:30 pts/12 00:00:00 grep memcached

work 27799 1 0 2014 ? 00:01:08/home/work/local/memcache/bin/memcached -d -m 8096 -p 11215 -c256

通过grep命令可以查找指定的进程名称,上面例子查找发现正常运行了,但如果我要关闭这个进程,可以通过杀死PID来完成,例如memcachedPID27799,那么执行下面kill命令即可:

$kill 27799
$ps -ef | grep 'memcached'

work 14896 5034 0 16:30 pts/12 00:00:00 grep memcached

再次查找进程已经消失。

小结:ps命令可以很好的查看和操作进程,使得在进程管理很方便。

 

原创粉丝点击