一、程序与进程的关系
1、程序:静态保存的代码
保存在硬盘、光盘等介质中的可执行的代码和数据
2、进程:在CPU及内存中运行的程序代码
动态执行的代码
父子进程
每个进程可以创建一个或多个进程
3、线程:一个进程包含多个线程
进程是线程的集合
4、进程、程序和线程的关系图
二、查看进程信息
1、ps命令
(1)ps aux 静态查看
a:查看系统当前的所有进程
u:指定用户
x:该用户在所有终端下的进程 tty(终端)
ps aux命令详解
%MEM:内存所在百分比
VSZ :占用的虚拟内存大小
RSS:占用的常驻内存大小
TTY终端
STAT 进程状态
S:可中断休眠进程
D:不可中断休眠进程
s:父进程
<:代表优先级高的进程
R:代表正在运行的进程
l:代表多线性进程
N:代表优先级低
Z:僵尸进程
+:前台进程
START 启动时间
TIME:今年初占用CPU的总时间
COMMAND 进程名称
(2)ps -elf 查看进程
-e:显示系统内的所有进程信息
-l:使用长(long)格式显示进程信息
-f:使用完整的(full)格式显示进程信息
ps -elf命令详解
F:加载序列
PPID 当前进程的父进程
AADR
-:正在运行
SZ : 虚拟交换分区的容量
WCHAN:当前进程的内核名称
C CPU占用
PRI 用户态优先级
NI 内核态优先级 (-20~19,数值越低优先级越高)
2、top命令——查看进程动态信息
默认每隔3秒刷新一次
top命令详解
CPU占用信息: ni,内核调度优先级 id,空闲空间 wa, i/o读写占用
hi ,硬占用 si ,软占用 st ,虚拟占用
内存占用(Mem)信息:total,总共 ; free,空闲; used,使用 ;buffers,缓冲区间
交换空间(Swap):total,总共; free,空闲; used,使用 ;cached,缓存空间;
3、pgrep命令——查询进程信息
根据特定条件查询进程PID信息
pgrep
-l :显示ID号
-U:查询特定用户的进程
-t:在特定终端运行的进程
4、pstree命令——查看进程树
以树形结构列出进程信息
pstree -aup
-a:显示完整信息
-u:列出对应用户名
-p:列出对应PID号
三、控制进程
1、手工启动进程
(1)前台启动:用户输入命令,直接执行程序。
(2)后台启动:在命令行尾加入“&符号”
命令为:cp /mnt/Packages/ /opt/ &
输出信息中包含后台任务序号、PID号
2、进程的前后台调度
Ctrl+Z键
将当前进程挂起,即调入后台并停止执行
jobs命令
jobs -l
查看后台的任务列表
fg命令
将后台进程恢复到前台运行,可指定任务序号·
3、终止进程执行
Ctrl+C组合键
中断正在执行的命令
kill、killall命令
kill 用户终止指定PID号的进程
killall用于终止指定所有名称的所有进程
-9选项用于强制终止
pkill命令
根据特定条件终止相应的进程
命令形式:pkill -9 -U
-U:根据进程所属的用户名终止相应进程
-t:根据进程所在的终端终止相应进程
结束单个进程
结束多个相同名称的进程
四、计划任务管理
1、at 命令
一次性计划任务
at命令常用类型
at [HH:MM] [yyyy-mm-dd]
data获取时间
atq查看等待任务
atrm 删除
at命令应运示范
2、crontab命令
按照预先设置的时间周期(分钟、小时、天.....)重复执行用户指定的命令操作
属于周期性计划任务
主要设置文件
全局配置文件,位于文件:/etc/crontab
系统默认的设置,位于目录:/etc/cron./
用户定义的设置,位于文件:/var/spool/cron/用户名
编辑计划任务
crontab -e [-u 用户名]
查看计划任务
crontab -l [-u 用户名]
删除计划任务
crontab -r [-u 用户名]
crontab 任务配置的格式格式
事件数值的特殊表示范围
“/”指定间隔的时间频率
“”表示该范围内的任意时间
“,”表示间隔的多个不连续时间点
“-”表示一个连续的时间范围
crontab命令常用格式:
分钟:取值为从0~59的任意整数
小时:取值为从0~23的任意整数
日期:取值为从1~31的任意整数(日期在该月份中必须有效)
月份:取值为从1~12的任意整数
星期:取值为从0~7的任意整数,0或7代表星期日
命令:可以是普通命令,也可以是自己编译的程序脚本
crontab命令应运示范
查看系统任务配置
删除计划任务