900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > linux环境下ps命令行 Linux系统ps命令详解:查看正在运行的进程

linux环境下ps命令行 Linux系统ps命令详解:查看正在运行的进程

时间:2020-01-14 02:32:26

相关推荐

linux环境下ps命令行 Linux系统ps命令详解:查看正在运行的进程

ps命令是最常用的监控进程的命令,通过此命令可以查看系统中所有运行进程的详细信息。ps命令有多种不同的使用方法,这常常给初学者带来困惑。在各种Linux论坛上,询问ps命令语法的帖子屡见不鲜,而出现这样的情况,还要归咎于UNIX悠久的历史和庞大的派系。在不同的Linux发行版上,ps命令的语法各不相同,为此,Linux采取了一个折中的方法,即融合各种不同的风格,兼顾那些已经习惯了其它系统上使用ps命令的用户。

ps 命令的基本格式如下:[root@localhost~]#psaux

#查看系统中所有的进程,使用BS操作系统格式

[root@localhost~]#ps-le

#查看系统中所有的进程,使用Linux标准命令格式

选项:a:显示一个终端的所有进程,除会话引线外;

u:显示进程的归属用户及内存的使用情况;

x:显示没有控制终端的进程;

-l:长格式显示更加详细的信息;

-e:显示所有进程;

可以看到,ps命令有些与众不同,它的部分选项不能加入"-",比如命令"ps aux",其中"aux"是选项,但是前面不能带“-”。

大家如果执行 "man ps" 命令,则会发现ps命令的帮助为了适应不同的类UNIX系统,可用格式非常多,不方便记忆。所以,我建议大家记忆几个固定选项即可。比如:"ps aux" 可以查看系统中所有的进程;

"ps -le" 可以查看系统中所有的进程,而且还能看到进程的父进程的 PID 和进程优先级;

"ps -l" 只能看到当前shell产生的进程;

有这三个命令就足够了,下面分别来查看。

【例 1】[root@localhost~]#psaux

#查看系统中所有的进程

USERPID%CPU%MEMVSZRSSTTYSTATSTARTTIMECOMMAND

root10.00.228721416?SsJun040:02/sbin/init

root20.00.000?SJun040:00[kthreadd]

root30.00.000?SJun040:00[migration/0]

root40.00.000?SJun040:00[ksoftirqd/0]

…省略部分输出…

表 1 中罗列出了以上输出信息中各列的具体含义。表 1 ps命令输出信息含义表头含义

USER该进程是由哪个用户产生的。

PID进程的 ID。

%CPU该进程占用 CPU 资源的百分比,占用的百分比越高,进程越耗费资源。

%MEM该进程占用物理内存的百分比,占用的百分比越高,进程越耗费资源。

VSZ该进程占用虚拟内存的大小,单位为 KB。

RSS该进程占用实际物理内存的大小,单位为KB。

TTY该进程是在哪个终端运行的。其中,tty1 ~ tty7 代表本地控制台终端(可以通过 Alt+F1 ~ F7 快捷键切换不同的终端),tty1~tty6 是本地的字符界面终端,tty7 是图形终端。pts/0 ~ 255 代表虚拟终端,一般是远程连接的终端,第一个远程连接占用 pts/0,第二个远程连接占用 pts/1,依次増长。

STAT进程状态。常见的状态有以下几种:-D:不可被唤醒的睡眠状态,通常用于 I/O 情况。

-R:该进程正在运行。

-S:该进程处于睡眠状态,可被唤醒。

-T:停止状态,可能是在后台暂停或进程处于除错状态。

-W:内存交互状态(从 2.6 内核开始无效)。

-X:死掉的进程(应该不会出现)。

-Z:僵尸进程。进程已经中止,但是部分程序还在内存当中。

-

-N:低优先级。

-L:被锁入内存。

-s:包含子进程。

-l:多线程(小写 L)。

-+:位于后台。

START该进程的启动时间。

TIME该进程占用 CPU 的运算时间,注意不是系统时间。

COMMAND产生此进程的命令名。

【例 2】"ps aux"命令可以看到系统中所有的进程,"ps -le"命令也能看到系统中所有的进程。由于 "-l" 选项的作用,所以 "ps -le" 命令能够看到更加详细的信息,比如父进程的 PID、优先级等。但是这两个命令的基本作用是一致的,掌握其中一个就足够了。[root@localhost~]#ps-le

FSUIDPIDPPIDCPRINlADDRSZWCHANTTYTIMECMD

4S0100800-718-?00:00:02init

1S000-0-?00:00:00kthreadd

1S0320-40--0-?00:00:00migration/0

1S0420800-0-?00:00:00ksoflirqd/0

1S0520-40--0-?00:00:00migration/0

…省略部分输出…

表 2 罗列出以上输出信息中各列的含义。表 2 ps -le 命令输出信息表头含义

F进程标志,说明进程的权限,常见的标志有两个:

1:进程可以被复制,但是不能被执行;

4:进程使用超级用户权限;

S进程状态。具体的状态和"psaux"命令中的 STAT 状态一致;

UID运行此进程的用户的 ID;

PID进程的 ID;

PPID父进程的 ID;

C该进程的 CPU 使用率,单位是百分比;

PRI进程的优先级,数值越小,该进程的优先级越高,越早被 CPU 执行;

NI进程的优先级,数值越小,该进程越早被执行;

ADDR该进程在内存的哪个位置;

SZ该进程占用多大内存;

WCHAN该进程是否运行。"-"代表正在运行;

TTY该进程由哪个终端产生;

TIME该进程占用 CPU 的运算时间,注意不是系统时间;

CMD产生此进程的命令名;

【例 3】如果不想看到所有的进程,只想查看一下当前登录产生了哪些进程,那只需使用 "ps -l" 命令就足够了:[root@localhost~]#ps-l

#查看当前登录产生的进程

FSUIDPIDPPIDCPRINlADDRSZWCHANTTYTIMECMD

4S018618186140800-1681-pts/100:00:00bash

4R018683186184800-1619-pts/100:00:00ps

可以看到,这次从 pts/1 虚拟终端登录,只产生了两个进程:一个是登录之后生成的 Shell,也就是 bash另一个是正在执行的 ps 命令。

我们再来说说僵尸进程。僵尸进程的产生一般是由于进程非正常停止或程序编写错误,导致子进程先于父进程结束,而父进程又没有正确地回收子进程,从而造成子进程一直存在于内存当中,这就是僵尸进程。

僵尸进程会对主机的稳定性产生影响,所以,在产生僵尸进程后,一定要对产生僵尸进程的软件进行优化,避免一直产生僵尸进程;对于已经产生的僵尸进程,可以在查找出来之后强制中止。

本文来自投稿,不代表访得立场,如若转载,请注明出处://view/1014.html

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。