Skip to main content
 首页 » 操作系统 » linux系统

第十章 进程介绍

目标理解什么是进程理解进程的状态管理进程理解任务控制议程进程的定义进程状态进程管理任务控制10.1什么是进程1.系统通过进程来完成工作Linux系统上所有运行的东西都可以称之为一个进程。每个用户任务、每个系统管理守护进程,都可以称之为进程。Linux用分时管理方法使所有的任务共同分享系统资源。

2.每一个进程都有一个独立的进程号,系统通过调用进程号来调度操作进程3.系统的原始进程是initinit的PID总是1

4.一个进程可以产生另一个进程,除了init以外,所有的进程都有父进程5.一个进程通常是一个正在执行的应用程序,它具体负责系统需要完成的各项任务进程与程序是有区别的,进程不是程序,虽然它由程序产生。程序只是一个静态的指令集合,不占用系统的运行资源;进程是一个随时都可能发生变化的、动态的、使用系统运行资源的程序。而且一个程序可以启动多个进程。

6.除了进程号,一个进程通常还具有:优先级

私有内存地址

环境

系统资源

文件描述

安全保证

7、像人类一样,一个进程可以同时身为一个进程的子进程,及另一个进程的父进程第十章 进程介绍  RedHat linux 第1张

图10.1 进程的父子关系

$ pstree

⑴ pstree命令是以树状图显示系统运行的所有程序。

⑵ 上图表现进程的父子关系。

10.2 进程是怎样启动的1. 一个进程可以启动另一个进程新的进程获得老进程的位置,老进程的PID不改变。

2. 进程分支当一个进程分支时,建立一个孩儿进程,他继承分支进程的环境。

3. 运行一个进程当一个程序运行另一个程序时,此程序分支他自己,然后新的拷贝执行(exec)此新程序。

当前shell的PID是28570:

[lijun@

PID TTY TIME CMD

28570 pts/8 00:00:00 bash

28578 pts/8 00:00:00 ps

[lijun@

新shell的PID是28588

[lijun@

PID TTY TIME CMD

28570 pts/8 00:00:00 bash

28599 pts/8 00:00:00 bash

28597 pts/8 00:00:00 PS

[lijun@

exec的登录shell PID仍旧是28588:

[lijun@

PID TTY TIME CMD

28570 pts/8 00:00:00 bash

28588 pts/8 00:00:00 bash --login

28606 pts/8 00:00:00 ps

10.3 进程的家谱1. init是在系统引导时第一个启动的进程,并且其PID总是12. 除了init,每个进程都有一个父进程3. 进程能够在同一时间既是父进程又是子进程pstree命令可查看系统上所有正在运行进程的家谱。

10.4 进程的状态1. 利用ps命令查看进程的状态

第十章 进程介绍  RedHat linux 第2张

图10.2利用ps命令查看进程的状态

2. ps显示中的STAT项代表:R 正在运行

S 进程睡眠中,通常可以因事件发生而被唤醒

T 进程已停止

D 进程睡眠中,除非发生指定事件,否则不会被唤醒

I 僵尸进程,例如未能被父进程回收的子进程。通常是一个系统bug或一个非法操作

< 高优先级进程

N 低优先级进程

10.5查询进程1. 查询进程的指令是ps语法:

$ps [option]

2. ps的常用选项:-a 显示所有进程,但不包括不隶属于任何一个终端的进程。

-x 显示不属于任何一个终端的进程,诸如各类系统网络服务的后台程序。

-l 以详细模式显示进程的信息。

-u 显示进程前的拥有者信息。

3. ps命令的用法:自从在系统上的进程是几百个,一个普通的查找指定进程的方法是把ps的输出发送到grep命令:

第十章 进程介绍  RedHat linux 第3张

图10.3 利用ps与grep命令组合查找指定进程

例: $ ps -alx | grep ‘服务器守护过程)

以上命令将显示ps命令的输出包含服务器。

2. top是一个常用的系统监视工具第十章 进程介绍  RedHat linux 第4张

图10.4 系统监视工具top

用top命令可显示一个交互式的,连续更新的进程列表。

10.6给进程发送信号1.Kill命令用于控制进程⑴ 语法:kill [-signal ] PID

kill [-signal] %jobID

⑵ 向进程传送一个特定的讯号。

默认讯号为15(终结)

⑶ kill -l 命令将列出所有可以由kill传递的讯号。

第十章 进程介绍  RedHat linux 第5张

图10.5 所有可以由kill传递的讯号

2. kill 命令可以通过向一个进程发送一个讯号来控制进程这个讯号既可以是数字,也可以是名称。默认情况下,kill向进程传送进程号15,即 terminate,以通知进程结束。

3. 对于忽视讯号15的进程,可以用9来强制杀死4. 我们可以用man 7 signal,来查询每一个讯号的意思与作用5.Killall命令:在killall后添加一个关键字,可以用来杀死一批进程。

例:$ killall

杀死所有服务)

注意:此命令可与top命令交互使用,达到杀死或停止有害或无用进程的目的。

评论列表暂无评论
发表评论
微信