本文共 1982 字,大约阅读时间需要 6 分钟。
程序和进程管理
什么是程序
程序是指保存在硬盘、光盘等介质中的可执行代码和数据文件中,静态保存的代码。程序是用特定的编程语言编写,经过编译或解释后,能够执行相应的操作。
什么是进程
进程是指在CPU及内存中运行的程序代码,动态执行的代码。每个程序可以创建一个或多个进程。进程是资源分配的最小单位,计算机在执行程序时,为程序创建相应的进程,并进行资源分配。
进程和线程的区别
进程是资源分配的最小单位,线程是程序执行的最小单位。计算机在执行程序时,会为程序创建相应的进程,进行资源分配时,是以进程为单位进行分配。每个进程都有相应的线程,实际执行时,执行的是线程。
查看进程信息
1. ps aux
ps aux 是用来查看系统中所有进程信息的命令。
每个字段的解释:
- USER:进程的用户
- PID:进程的ID
- %CPU:进程占用的CPU百分比
- %MEM:占用内存的百分比
- VSZ:该进程使用的虚拟内存量(KB)
- RSS:该进程占用的物理内存量(KB)
- TTY:启动进程的终端名
- STAT:进程的状态
- START:进程被触发启动的时间
- TIME:进程实际使用CPU运行的时间
- COMMAND:进程的启动命令
2. ps -elf
ps -elf 是用来查看更详细的进程信息的命令,包括进程的状态和资源使用情况。
字段解释:
- F:内核分配给进程的系统标记
- S:进程的状态
- UID:启动这些进程的用户
- PID:进程的进程ID
- PPID:父进程的进程号
- C:进程生命周期中的CPU利用率
- PRI:进程的优先级
- NI:谦让度值
- ADDR:进程的内存地址
- SZ:进程所需交换空间的大致大小
- WCHAN:进程在睡眠时所使用的系统函数
- STIME:进程启动的系统时间
- TTY:进程启动时的终端设备
- TIME:进程运行所需的累计CPU时间
- CMD:进程的启动命令
3. top
top 是一个动态查看进程信息的命令,每隔5秒刷新一次。
top 的第一行显示系统时间和负载信息:
- 系统时间:当前系统时间
- up:系统已运行的时间
- load average:系统负载,分别表示1分钟、5分钟、15分钟前的平均值
第二行显示进程队列信息:
- Tasks:总进程数
- running:正在运行的进程数
- sleeping:休眠的进程数
- stopped:终止的进程数
- zombie:僵死的进程数
第三行显示CPU使用情况:
- us:用户占用CPU时间
- sy:内核占用CPU时间
- ni:优先级调度占用CPU时间
- id:空闲CPU百分比
- wa:I/O等待占用CPU时间
- hi:硬件中断占用CPU时间
- si:软件中断占用CPU时间
- st:虚拟化占用CPU时间
第四行显示内存使用情况:
- total:总内存空间
- free:空闲内存
- used:已用内存
- buff/cache:缓冲区和交换区的总和
第五行显示交换空间使用情况:
- total:总交换空间
- free:空闲交换空间
- used:已用交换空间
- avail Mem:可用物理空间
4. pgrep
pgrep 是用来根据进程条件查询进程PID号的命令。
常用选项:
- -l:根据进程名查找进程
- -N:查询指定用户的进程
5. pstree
pstree 是用来以树形结构输出系统中各种进程的命令。
进程的启动方式
1. 手动启动
- 前台启动:直接输入命令并执行
- 后台启动:在命令行尾加上 & 符号
2. 进程前后台调度
- Ctrl+Z:将当前进程挂起,调至后台并停止执行
- jobs -l:查看后台运行的任务列表
- fg:将后台进程恢复到前台运行
3. 终止进程
- Ctrl+C:中断正在执行的命令
- kill:终止指定PID号的进程
- killall:终止指定名称相关的所有进程
- pkill:根据特定条件终止进程
计划任务管理
1. at命令
at命令用于一次性计划任务:
- at [HH:MM ] [yyyy-mm-dd]:设置在指定时间执行命令
2. crontab命令
crontab 是用来设置周期性计划任务的命令。
crontab 的时间表达式:
- *表示所有时间
- */n表示间隔n分钟
- 表达式可以组合使用
crontab 的常用用法:
- crontab -e:编辑计划任务
- crontab -l:查看计划任务
- crontab -r:删除计划任务
crontab 的时间特殊表示方法:
- 0 13 * * *:每天13点
- 20 5 * * 2,4,6:每周二、四、六的5点20分
- 0 2-18/2 * * *:2点到18点之间每2小时
- 0 * */5 * *:每5天
总结
通过 ps、top、pgrep、pstree 等命令,可以查看系统中进程的详细信息。进程可以通过后台启动、前后台调度、终止等方式管理。at 和 crontab 命令则用于设置一次性和周期性计划任务。
转载地址:http://eyh.baihongyu.com/