代码改变世界

第十一章:查看和管理进程

2010-12-15 22:07  htc开发  阅读(204)  评论(0编辑  收藏  举报

目标

  1.解释什么是进程

  2.描述如何管理进程

  3.使用任务控制工具

一、什么是进程

  进程是加载到内存中指令的集合。

    1.PID(ProcessID)

    2.UID, GID和linux上下文决定文件系统的访问

      正常情况下从执行文件的用户下继承

二、列出进程

  1.使用ps命令查看进程信息

    默认情况下打印当前终端使用的进程

    -a选项:打印所有终端的进程

    -x选项:打印不归属于终端的进程

    -u选项:打印进程拥有者信息

     -f选项:打印进程的父亲信息

    -o PROPERTY选项:打印客户信息

      pid, comm, %cpu, %mem, state, tty, euser, ruser

三、查找指定进程

  1.最灵活方便的方式:ps options | other命令

   eg.

    ps -e | grep su 最常用

  2.使用预定义的模式:pgrep

   eg.

    pgrep -U root

    pgrep -G student

  3.通过准确的程序:pidof

   eg.

    pidof bash

四、信号

  1.所有的进程间通信

    不需要用户接口的,直接发送

    使用信号连接成程序的行为

    信号被指定为名称或者编号使用

      信号15,TERM-- Terminate cleanly

      信号 9 ,KILL --Terminate immediately

      信号 1, HUP-- 重读配置文件

      man 7 signal 现实完整的列表

五、发送信号到进程

  1.通过PID:kill [signal1] pid

  2.通过名称:killall [signal1] comm

  3.通过模式:pkill [-signal1] pattern

六、调度优先权

  1.调度优先权决定进程如何访问CPU

  2.优先权被进程的nice值影响

  3.nice取值范围为-20到19,默认为0

    值越低表示优先权越高

  3.通过命令: ps -o comm, nice 查看nice值

七、变更调度优先权

  1.nice值可以变更:

    当这样运行进程: nice -n 5 command

    运行之后: renice 5 PID

  2.只有系统管理员root可以减少nice值

八、交互进程管理工具

  1.CLI: top

  2.GUI: gnome->system->monitor

  3.能力

    现实实时进程信息

    允许排序,杀死和修改nice值

九、任务控制

  1.在后台运行程序

    ./program &

  2.暂时停止以个正在运行的进程

    CTRL+Z: 实际上发送signal 17(stop)

  3.管理后台或悬挂的任务

    列出任务数量和名称:jobs

    恢复进程到后台运行:bg [%jobNum]

    恢复进程到前台运行:fg[%jobNum]

    发送信号: kill [-signal= [%jobNum]