一、 进程和程序的关系
文章目录
1.1 程序
- 保存在硬盘、光盘等介质中可执行代码和数据
- 静态保存的代码
1.2 进程
- 在CPU和内存中运行的程序代码
- 动态执行代码
- 父、子进程
- 每个程序可以创建一个或多个进程
**1. 进程是程序运行的过程
2. 内核程序:调度进程使用资源。**
1.2 进程的4种状态:
一、 running
二、sleeping
三、 stopped
四、zombie
1.3 进程状态
在多任务处理的操作系统中,每个CPU(或核心)在一个时间点上只能处理一个进程。在进程运行时,它对CPU时间和资源分配的要求会不断变化,从而为进程分配一个状态,它随着环境要求而改变。
二、查看进程
2.1 PS——静态查看进程
一般使用 PS aux 或者使用 ps aux | less // 分页查看
ps的命令选项:
ps 的参数非常多, 在此仅列出几个常用的参数并大略介绍含义
-A 列出所有的行程
-w 显示加宽可以显示较多的资讯
-au 显示较详细的资讯
-aux 显示所有包含其他使用者的行程
au(x) 输出格式 :
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
USER: 行程拥有者
PID: pid
%CPU: 占用的 CPU 使用率
%MEM: 占用的记忆体使用率
VSZ: 占用的虚拟记忆体大小
RSS: 占用的记忆体大小
TTY: 终端的次要装置号码 (minor device number of tty)
STAT: 该行程的状态:
D: 无法中断的休眠状态 (通常 IO 的进程)
R: 正在执行中
S: 静止状态
T: 暂停执行
Z: 不存在但暂时无法消除
W: 没有足够的记忆体分页可分配
<: 高优先序的行程
N: 低优先序的行程
L: 有记忆体分页分配并锁在记忆体内 (实时系统或捱A I/O)
START: 行程开始时间
TIME: 执行的时间
COMMAND:所执行的指令
1.2 ps -elf
将以长格式显示系统中的进程信息,并且包含更丰富的内容
输出中还包括PPID(表示对应的父进程的PID号)
2.2 top——动态查看进程
2.2.1 格式
top 选项
2.2.2 选项
d : 改变显示的更新速度,或是在交谈式指令列( interactive command)按 s
q : 没有任何延迟的显示速度,如果使用者是有 superuser 的权限,则 top 将会以最高的优先序执行
c : 切换显示模式,共有两种模式,一是只显示执行档的名称,另一种是显示完整的路径与名称S : 累积模式,会将己完成或消失的子行程 ( dead child process ) 的 CPU time 累积起来
s : 安全模式,将交谈式指令取消, 避免潜在的危机
i : 不显示任何闲置 (idle) 或无用 (zombie) 的行程
n : 更新的次数,完成后将会退出 top
b : 批次档模式,搭配 “n” 参数一起使用,可以用来将 top 的结果输出到档案内
2.2.3 案例:
案例 top -d 1 -u 用户名 //查看指定用户进程
案例 top -d 1 -b -n >top.txt // 将二次的top进程写入top.txt文件
2.3 pgrep——查看单个进程
pgrep -l -u 用户名 //查看个用户的进程
-l 查看输出对应的PID值
-u 查看当个用户的进程
2.4 pstrss——查看进程树
进程的树形结构,父进程、子进程关系
2.4.1 选项
- -p:列出对应的PID号
- -u:列出对应的用户名
- -a:列出完整的命令信息
pstree -aup
ptree -ap ttyy (用户名)
三、控制进程
3.1 启动进程
将进程调到后台
在语句后面加& 例如:cp /dev/cdrom mycd.sio &
3.2 改变进程的运行方式
ctrl+z //挂起到后台
ctrl+c //终止
jobs -l //查看进程任务情况
fg 进程号 将后台的进程调到前台运行
bg 可以将后台中暂停执行的任务继续运行,不到前台(搭配,Ctrl+C和Ctrl+Z)
3.3 终止进程执行
- kill : kill -9 进程号 //强制杀死进程
- pkill : pkill -9 -U 用户名 //强制杀死单个用户的所有进程,高危命令有BUG谨慎使用
- killall : killall -9 vim //是指vim的所有进程
四、计划任务管理
4.1 at一次性任务设置
设置一次性任务计划,在2020-6-24 15:48将root用户的进程数写到ps.root中。ctrl+d提交任务
查看任务 atq
删除任务 atrm 2 //2是指任务号
4.2 crontab周期性任务设置
案例:每隔2分钟同步一次ntp1.aliyun.com,产生的日志文件,追加到/var/log/ntpdate.log日志文件中。
4.2 crontab的配置文件和目录
1. cat /etc/crontab //系统任务配置文件
2. /etc/cron.* //系统默认设置cron任务的配置文件存放目录
3. /var/spool/cron //用户cron任务的配置文件存放目录