主要内容:了解程序与进程的关系、进程的前台后台;掌握查看进程的命令ps;了解虚拟文件系统;掌握top命令管理进程的方法;掌握shell使用kill管理进程的方法。
一、进程的定义
进程是操作系统的概念,每当我们执行一个程序时,对于操作系统来讲就创建了一个进程,在这个过程中,伴随着资源的分配和释放。可以认为进程是一个程序的一次执行过程。
二、进程与程序的区别
程序是静态的,它是一些保存在磁盘上得指令的有序集合,没有任何执行的概念。
进程是一个动态的概念,它是程序执行的过程,包括创建、调度和消亡。
三、进程的状态
1. Linux进程状态:R (TASK_RUNNING),可执行状态&运行状态(在run_queue队列里的状态)
2. Linux进程状态:S (TASK_INTERRUPTIBLE),可中断的睡眠状态, 可处理signal
3. Linux进程状态:T (TASK_STOPPED or TASK_TRACED),暂停状态或跟踪状态,不可处理signal,因为根本没有时间片运行代码
4. Linux进程状态:Z (TASK_DEAD - EXIT_ZOMBIE),退出状态,进程成为僵尸进程。不可被kill,即不响应任务信号,无法用SIGKILL杀死
四、进程的管理
1.进程的启动
前台启动和后台启动:后台启动的进程启动后不需要与输入输出进行交互。
如:ls –a >text &
2.查看进程
名称:ps
使用权限:所有使用者
使用方式:ps [options] [--help]
说明:显示瞬间行程 (process) 的动态
选项:ps的选项非常多, 在此仅列出几个常用的并大略介绍含义
常用选项:
-A 显示所有进程,同-e
-a 显示当前终端的所有进程,包括其他用户的进程信息
-l 以长格式显示进程信息(有F,wchan,C 等字段)
-u 显示面向用户的格式(包括用户名、CPU及内存使用情况等信息)
-g 按照gid or groupname 显示所有进程信息。
-r 显示正在运行的进程
-x 显示没有控制终端的(即后台运行的)进程。
-t 终端号 显示指定终端上的进程信息。
-f 全部列出进程的信息,通常和其他选项联用。如:ps –fa、 ps -fx 、ps -ef.
ps命令常用用法(方便查看进程信息)
- ps –u显示当前进程的详细信息
其中VSZ为进程占用的虚拟内存空间、RSS为进程占用的内存空间
3)ps –ef显示系统中所有进程的全面信息
3.切换进程
名称:jobs
使用权限:所有使用者
使用方式:jobs [options]
说明:显示当前所有作业(后台)
参数:-l 同时显示进程号和作业号
-p 只显示进程号
进程的前后台转换:
bg [作业号]前台转后台
fg[作业号] 后台转前台
ctrl+Z 挂起进程
4.暂停进程
sleep 时间值(s)
usleep 时间值(us)
例:终端暂停10s
Sleep 10
5.终止进程
终止前台进程用ctrl+C,后台进程用kill
名称:kill
使用权限:所有使用者
使用方式:kill [-s 信号 -p] 进程号或者kill –l [信号]
说明:终止正在进行的进程或作业
参数:-l 显示信号名称列表
-s 指定要发送的信号
-p指定kill命令只是显示进程的pid
Kill 0 杀掉所有当前shell的进程。
注意,如果不输入信号,就是发送TERM信号
例子:kill -s SIGTERM 10115,向进程号为10115的进程发送结束信号
五、进程管理实例
启动vim进程,使之后台进行,查看vim进程的详细全面信息;
显示当前所有作业,将vim转换到前台,挂起vim,再将vim转到后台执行;
暂停shell进程10s,终止vim进程。
六、练习
启动vim进程,使之后台进行,查看vim进程的详细全面信息;
显示当前所有作业,将vim转换到前台;
显示当前所有作业,再将vim转到后台执行;
暂停shell进程10s,终止vim进程。
答案: