实验2 Linux 进程控制
一. 实验目的
1.学会查看和杀死进程。
2.加深对进程概念的理解,明确进程与程序的区别。
3.熟悉linux 下vi 的使用。
二. 实验指导
1. 查看系统中的进程
格式:ps [选项]
例如:ps //显示当前用户在shell 下所运行的进程。
ps -u osmond //显示用户osmond 的进程。
ps -aux //显示系统中正在运行的所有进程的详细信息。
2. 杀死系统中的进程
格式:kill [signal] PID
PID 是进程的识别号;signal 是向进程发出的进程信号。
3. vi 文本编辑工具
进入Linux 的字符界面,输入vi file ,进入vi 编辑程序。
vi 提供了输入模式(insert mode )和命令模式(command mode )。使用者进入vi 后,即处在命令模式下,此刻键入i 转换到输入模式。
在输入模式下,按ESC 可切换到命令模式。命令模式下,常用的指令有:
:q! 离开vi ,并放弃刚在缓冲区内编辑的内容
:wq 将缓冲区内的资料写入磁盘中,并离开vi
:n 光标直接跳到第n
:w 将当前编辑的内容存盘
ESC 离开输入模式
4. 有关进程控制系统调用
三.实验内容
1. 请在字符界面下完成下列作业控制操作:
? 显示当前运行的进程
? 运行cat 命令
函数名
调用格式 功能 fork() int fork()
例:
pid=fork(); 创建一个新进程,fork( )返回值意义如下: 0:在子进程中,pid 变量保存的fork( )返回值为
0,表示当前进程是子进程。
>0:在父进程中,pid 变量保存的fork( )返回值
为子进程的id 值(进程唯一标识符)。
-1:创建失败。
execl() int execl(新程序名,0) 重新加载进程,用新程序替换原进程。如
execl("bin/ls",0); 用bin/ls 替换原进程。
wait () int wait(int status) 例: wait(); 等待子进程运行结束。如果子进程没有完成,父进
程一直等待。wait( )将调用进程挂起,直至其子进
程因暂停或终止而发来软中断信号为止。如果在
wait( )前已有子进程暂停或终止,则调用进程做适
当处理后便返回。
exit () void exit(int status)
终止进程的执行