监控和管理Linux进程

进程的定义

进程process:分配的内存地址空间、安全属性(所有权和特权)、一个或多个线程、进程状态

进程的环境:本地和全局变量、当前调度上下文、分配的系统资源(如文件和网络端口)

当前进程parent复制自己的地址空间fork来创建一个新的子进程结构,每个进程具有PID

多任务操作系统中,每个CPU同一时间处理一个进程,进程运行时具有不同状态

列出进程

ps命令用于列出当前进程:运行进程的用户UID、进程PID、CPU在其上的运行时间、分配的内存量、进程的stdout位置(控制终端)

ps-aux(UNIX格式)不等于ps aux(BSD格式)

ps的常用选项是aux 、-ef、lax(长列表)

描述作业和会话

job control是shell的一种功能,允许单个shell实列运行和管理多个命令

一个终端同一时间只能对一个作业发送信号和读取信息,这个作业进程成为该终端的前台进程

可以将作业进程放入后台,可以运行也可以暂停

每个terminal就是一个会话,里面可能含有一个前台进程和任意数量的后台进程,一个作业只属于一个会话

ps输出中有些进程由系统启动,而不是由shell提示符启动,这种进程没有terminal,无法切换到前台,在ps中显示为?

在后台运行作业

命令后加&即可在后台运行,shell继续显示提示符

jobs命令显示作业列表

fg %jobid可将后台作业转至前台

ctrl+z可将前台进程放到后台,并暂停运行

ps j 命令显示作业信息,进程状态T表示暂停

bg %jobid可以在后台继续运行作业