- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第十四章进程控制-Read.doc
第十四章:进程控制
目标
完成这一章,你能够做以下事情:
使用ps命令
在后台运行进程 ,并且使用ps命令监视正在运行的进程的状态
运行一个后台进程并使其在你退出系统后不被挂起。
切换后台进程到前台运行。
挂起一个进程。
停止进程的运行。
19.1 ps 命令
语法:
ps [-efl] 报告进程的状态
例子:
$ ps
PID TTY TIME COMMAND
1324 ttyp2 0:00 sh
1387 ttyp2 0:00 ps
$ ps –ef
UID PID PPID C STIME TTY TIME COMMAND
Root 0 0 0 Jan 1 ? 0:20 swapper
Root 1 0 0 Jan 23 ? 0:00 init
Root 2 0 0 Jan 23 ? 0:16 vhand
User3 1324 1 3 18:03:21 ttyp2 0:00 -sh
User3 1390 1324 22 18:30:23 ttyp2 0:00 ps –ef
系统中每个进程在启动的时候都会被分配一个唯一号码,这个号码就叫进程ID(PID)。ps 命令可以显示当前运行中(或睡眠中)的进程的信息,包括每个进程的PID和每个进程父进程的 PID(PPID)。通过PID和PPID号,你可以追踪到你系统中任何进程的起源。ps命令也会报告每个进程的属主和进程是在哪个终端上执行的。
ps 命令可以不带参数执行,结果会报告你当前的终端会话线索的进程信息。 -e选项会报告系统中每一个进程的信息,而不仅仅是你自己运行的进程信息。 -f 和-l选项会报告长的(long),或完全的(full)包含其他的细节的列表。
注意:ps 命令执行时会集中使用CPU,你也许已经注意到当这个命令执行的时候要过一会才有响应
19.2 后台进程
语法:
命令cmd.out
例子:
$ grep user * grep.out
194
$ ps
PID TTY TIME COMMAND
164 ttyp2 0:00 sh
194 ttyp2 0:00 grep
195 ttyp2 0:00 ps
命令 cmd.out
使命令在后台执行。
当后台任务开始后立刻返回提示符。
重定向命令的输出,这样命令的输出就不会影响当前屏幕的显示。
退出系统会中止后台运行的进程。用户会在第一次试图退出时收到一个警告:“There are running jobs”。用户必须再次键入Exit 或ctrl+d来中止这个线索。
一些命令可能会执行很长的时间,例如在全部的磁盘上查找单个文件,或使用一个文本处理工具来格式化和打印一个手册。UNIX操作系统允许你启动一个很消耗时间的程序,并且在让它在后台运行。在后台,UNIX会让这个程序继续执行。和其他的立即执行的命令不同的是,shell不会等待后台程序执行完毕立即就会返回提示符,这样你就可以继续其它的工作。
在一个命令的末尾使用一个“”符号可以使一个命令在后台运行。通常需要重定向后台运行的程序的输出,以免后台命令的输出影响你当前的终端线程。如果没有重定向输出,后台命令会使用标准输出,也就是会输出到你的终端上。
由于shell控制标准输入,而后台运行的命令不能够从标准输入接收数据,因此,任何后台运行的命令要求输入都必须使用输入重定向从一个文件得到输入数据。
当一个命令被放在后台执行,如果设置了monitor选项(set -o moniotr),shell会报告命令的任务号和进程ID,任务号定义了与你终端线索相联系的任务。进程ID为UNIX分配给每一个被执行的进程的唯一的号码。Monitor选项会导致在后台进程完成之后会在终端上显示一条信息:
[1] + Done grep user * grep.out 提示进程执行完毕
由于在后台运行的命令不和键盘通信,所以你不能够通过中止键:ctrl + c来中断一个后台进程,但后台进程可以通过kill命令来或退出系统来中断执行。
注意: 后台进程都要明确地重定向输入和输出。
注意: 一个后台任务中可以同时包含多个命令,只要将这些命令用括号括起来(命令1,命令2,命令3),然后操作系统就会作为一个任务执行这些命令。
19.3 将任务放在后台/前台运行
jobs 显示当前运行的任务
ctrl + z 将当前前台运行的程序挂起。
fg [%number] 将指定任务号的任务放在前台运行
fg [%string] 将以指定字符串开头的命令放在前台运行
bg [%number] 将指定任务号的任务放在后台运行
bg [%number] 将指定任务号的任务放在后台运行
在POSIX shell 中,进程可以被放在前台或后台运行。如果你在前
文档评论(0)