河北工业大学操作系统实验报告linux - 和windows部分 联系客服

发布时间 : 星期日 文章河北工业大学操作系统实验报告linux - 和windows部分更新完毕开始阅读53c39916a8956bec0975e38a

软件c122郭嵘峥 125448

ps –e ps –f ps -u userid

基本的ps命令显示在当前shell中的进程信息,用户只能够查看在这个终端窗口中初始化的进程。输入ps命令,将结果填入表3-6中。

表3-6 实验记录

PID 4848 4493

从当前终端窗口中,练习使用给出的每个选项的ps命令。

输入 ps -f 命令,显示运行在系统中的某个进程的完全信息,填入表3-7中。

表3-7 实验记录

UID student student ps -f命令输出的各栏标题见表3-8所示。

表3-8 ps -f栏标题

值 UID PID PPID C STIME TTY TIME 初始化进程的用户ID 进程的进程标识号。PID可以用来杀死进程 进程的父进程标识号 进程的优先级 进程的启动时间 控制进程终端的终端举型 进程使用的CPU时间的数量 描述 PID 4848 4901 PPID 4846 4848 C 0 0 STIME 08:30 08:49 TTY pts/0 pts/0 TIME 00:00:00 00:00:00 CMD bash ps -f pts/0 pts/0 TTY TIME 00:00:00 00:00:00 bash ps CMD 每一个 完全 用户 显示系统中每一个进程的信息 产生一个完全列表,给出每个进程的所有可用信息 显示特定用户的所有进程 软件c122郭嵘峥 125448

CMD

步骤5:列出系统中运行的所有进程。

输入 ps -ef 命令,显示运行在系统中的各个进程的完全信息。执行该命令,并与ps –f命令的输出结果对照,一致吗?有何不同

不一致,用户类型增加了。 注意分析当前终端窗口中的输出结果: a. 显示了多少个进程?

61 b. 进程ID的PID是什么?

进程的进程标识号。PID可以用来杀死进程 c. 启动进程的命令 (CMD) 是什么?

命令名守护进程 (执行的程序的名字) d. 请观察,什么命令的PID号是1? root

e. 再次运行ps –ef命令,计算进程的数目: 61

然后执行下列命令:把输出结果输入到wc命令中

新建一个文件home/student/zhang – gedit,里面放入ps -ef命令的输出结果。然命令名守护进程 (执行的程序的名字) 后用wc zhang命令打开。 第一个数字显示的是行的数目,也是进程的数目: 61 执行 man ps命令,可以打开Linux用户命令手册,了解ps命令的用法,输入wq命令可退出用户手册的阅读。man命令可以执行吗?结果如何?

不可以,提示:没有那个文件或目录。 步骤6:根据命令名搜索特定的进程。

为了终止一个进程,必须找到该进程的PID。大多数运行的系统中,有上百个进程在运行,ps -ef的列表可能很长。如果知道启动进程的执行程序的名字,可以更快地找到PID。

通过把ps命令的输出结果输入到grep中,可以搜索想要终止的特定进程,确定正确的PID。

grep命令可以在其他命令的输出中搜索所有类型的特征字符串。-l (长的输出) 选项将显示和找到的PID相关的进程的名字;-e选项显示PID和初始化命令的名字。

a. 单击红帽子,在“GNOME帮助”菜单中单击“游戏”-“堆麻将”命令,打开“堆麻将”游戏。

软件c122郭嵘峥 125448

b. 在当前的终端窗口中,执行命令:

ps –e | grep mahjongg

(“堆麻将”游戏的进程名是“mahjongg”) ,查找和“堆麻将”游戏调度守护进程相关的所有进程。

c. 显示了多少个相关进程? 2

d. 显示进程中最小的进程ID号是多少? 19678 c. 在当前终端窗口中执行命令:

pgrep –l mahjongg

查找所有和“堆麻将”游戏调度守护进程相关的进程。ps和pgrep命令输出之间有什么不同? ps –e | grep mahjongg命令比pgrep –l mahjongg命令输出结果多显示了TTY(控制进程终端的终端举型)和TIME(进程使用的CPU时间的数量).

步骤7:确定一个要终止的进程。

当试图终止一个程序,或者释放一个挂起的终端窗口的时候,杀死和不响应的应用相关的PID可能还是不够的,一般需要杀死那个进程的父进程,在少数情况下,甚至要杀死父进程的父进程。为了沿着层次结构,从子进程追溯到派生它们的父进程,必须能够查找PID和PPID。

必须首先确定最低级不响应进程的PID。通常,可以试着去杀死那个进程。如果这样做不能够停止那个进程,可能需要杀死它的父进程。杀死父进程将杀死所有它派生的子进程。杀死一个父进程也比杀死几个子进程快得多。

1) 在GNOME当前终端窗口中,输入ps命令。 有多少进程正在运行?为什么只有这么少的进程?

2个,因为当前正在运行的只有两个进程。 2) 正在运行的进程的名字是什么?它表示什么?

bash 和 ps ,bash是打开终端后自动启动的程序,ps是当前执行的命令。

3) 这个进程的PID是多少?

5026 和 19697

4) 在bash shell中输入命令csh,打开一个C shell会话,当前系统的会话提示符是什么? ~ 5) 输入 ps -f 命令,显示在当前shell中运行的进程的所有信息。现在什么进程正在运行?

bash 和 -sh 和 ps -f

6) bash的PID是-sh (csh) 的PPID吗?

软件c122郭嵘峥 125448

7) 输入命令sleep l000&,创建一个进程,把执行挂起1000秒 (大约15分钟) 。&表示在后台运行命令,返回shell提示符,这样您可以继续工作。

8) 再次输入ps -f命令。-sh (csh) 的PID是sleep命令的PPID吗?哪个PID是csh (C shell) 的子进程?

是,sleep 1000 和 ps -f 都是csh (C shell) 的子进程 9) 输入命令 kill -9 退出C shell。然后再次键入ps -f命令。什么PID是sleep父命令的PPID?

0 sleep进程现在是什么类型的进程?

孤儿进程 步骤8:使用kill命令终止一个进程。

信号用于终止、挂起和继续进程。有时候使用Ctrl + c可以终止一个不响应的进程。这样向进程发送一个中断 (INT) 信号,终止它及所有它派生的子进程。

kill命令提供了一个终止不想要的命令进程的直接方法。当想停止一个运行了很长时间的命令的时候,或者当需要终止一个不能够正常退出的进程的时候,它很有用。指定PID正常地杀死一个进程。

kill [-signal] process -id

为了使用kill命令终止一个进程,应该首先键入ps找出进程的PID,然后键入kill紧跟着PID。如果使用kill而没有指定信号,则信号15 (SIGTERM) 将被发送给特定PID号的进程。这叫做软杀死,通常终止了进程。如果可能,最好软杀死进程,这样它可以正确地关闭文件,温和地终止进程。

如果需要强制终止一个进程,可以使用带 -9选项的kill命令。这个选项叫做强制杀死,当shell对所有其他终止信号都不响应的时候,需要使用它来杀死shell。

kill -9 process -id

注意:对于shell之外的进程,把kill –9 (SIGKILL) 作为最后的选项,因为它是一种生硬的方法,不允许正确的进程终止。

a. 输入命令ps –f ,显示在当前shell中运行的进程的完整信息。现在什么进程正在运行?

bash和ps -f

b. 因为sleep进程现在是一个孤儿进程,已经被init进程 (PID #l) 收养,输入命令,

对sleep的PID执行软杀死。如果sleep已经终止 (超过15分钟) ,则重复步骤7中的8) 、9) 操作,然后软杀死sleep程序。再次输入ps –f命令,正在运行什么程序?