Linux 有关运行中的进程的信息


/proc 文件系统可以用于获取运行中的进程的信息。在 /proc 中有一些编号的子目录。每个编号的目录对应一个进程 id (PID)。这样,每一个运行中的进程 /proc 中都有一个用它的 PID 命名的目录。

这些子目录中包含可以提供有关进程的状态和环境的重要细节信息的文件。让我们试着查找一个运行中的进程。

        $ ps -aef | grep mozilla
        root 32558 32425 8 22:53 pts/1 00:01:23 /usr/bin/mozilla

        上述命令显示有一个正在运行的 mozilla 进程的 PID 是 32558。相对应的,/proc 中应该有一个名叫 32558 的目录

        上面这个command通过Ps来活得所有进程信息。然后用管道符输入到grep这里。通过grep命令,来获得含有mozilla的进程信息。PS命令的详解如下:

        ps

        1.作用
        ps显示瞬间进程 (process) 的动态,使用权限是所有使用者。

        2.格式
        ps [options] [--help]

        3.主要参数
        ps的参数非常多, 此出仅列出几个常用的参数。

        -A:列出所有的进程。
        -l:显示长列表。
        -m:显示内存信息。
        -w:显示加宽可以显示较多的信息。
        -e:显示所有进程。
        a:显示终端上的所有进程,包括其它用户的进程。
        -au:显示较详细的信息。
        -aux:显示所有包含其它使用者的进程。

        4.说明
        要对进程进行监测和控制,首先要了解当前进程的情况,也就是需要查看当前进程。ps命令就是最基本、也是非常强大的进程查看命令。使用该命令可以确定有哪些进程正在运行、运行的状态、进程是否结束、进程有没有僵尸、哪些进程占用了过多的资源等。图2给出了ps-aux命令详解。大部分信息都可以通过执行该命令得到。最常用的三个参数是u、a、x。下面就结合这三个参数详细说明ps命令的作用:ps aux

        STAT 表示进程的状态,其中D为不可中断的静止(I/O动作);R正在执行中;S静止状态;T暂停执行;Z不存在,但暂时无法消除;W没有足够的内存分页可分配;高优先序的进程;N低优先序的进程;L有内存分页分配并锁在内存体内 (实时系统或 I/O)。START为进程开始时间。TIME为执行的时间。COMMAND是所执行的指令。

        4.应用实例
        在进行系统维护时,经常会出现内存使用量惊人,而又不知道是哪一个进程占用了大量进程的情况。除了可以使用top命令查看内存使用情况之外,还可以使用下面的命令:

        ps aux | sort +5n

        $ ls -l /proc/32558
        total 0
        -r--r--r-- 1 root root 0 Dec 25 22:59 cmdline
        -r--r--r-- 1 root root 0 Dec 25 22:59 cpu
        lrwxrwxrwx 1 root root 0 Dec 25 22:59 cwd -> /proc/
        -r-------- 1 root root 0 Dec 25 22:59 environ
        lrwxrwxrwx 1 root root 0 Dec 25 22:59 exe -> /usr/bin/mozilla*
        dr-x------ 2 root root 0 Dec 25 22:59 fd/
        -r--r--r-- 1 root root 0 Dec 25 22:59 maps
        -rw------- 1 root root 0 Dec 25 22:59 mem
        -r--r--r-- 1 root root 0 Dec 25 22:59 mounts
        lrwxrwxrwx 1 root root 0 Dec 25 22:59 root -> //
        -r--r--r-- 1 root root 0 Dec 25 22:59 stat
        -r--r--r-- 1 root root 0 Dec 25 22:59 statm
        -r--r--r-- 1 root root 0 Dec 25 22:59 status

        文件 "cmdline" 包含启动进程时调用的命令行。"envir" 进程的环境变两。 "status" 是进程的状态信息,包括启动进程的用户的用户ID (UID) 和组ID(GID) ,父进程ID (PPID),还有进程当前的状态,比如"Sleelping"和"Running"。每个进程的目录都有几个符号链接,"cwd"是指向进程当前工作目录的符号链接,"exe"指向运行的进程的可执行程序,"root"指向被这个进程看作是根目录的目录 (通常是"/")。目录"fd"包含指向进程使用的文件描述符的链接。 "cpu"仅在运行 SMP 内核时出现,里面是按 CPU 划分的进程时间。 /proc/self 是一个有趣的子目录,它使得程序可以方便地使用 /proc 查找本进程地信息。/proc/self 是一个链接到 /proc 中访问 /proc 的进程所对应的 PID 的目录的符号链接。

        以上就是偶对/proc的内容补充。大家可以看到,这个只是在outline上很小的一个知识点,就牵涉到了那么多的内容。偶想,这个大概就是为什么Linux难学的原因吧。

        小记:因为学习Linux,单位和家里的两套机器都安装了vmware server 1.0.3。但是这个软件不是很稳定。现在家里的那台就是死活无法运行Fedora 7.连vmware的开机画面都没有。只要运行F7,就是黑屏。

 

本文作者:
« 
» 
快速导航

Copyright © 2016 phpStudy | 豫ICP备2021030365号-3