目录
一、程序和进程的关系
1.程序
- 保存在硬盘、光盘等介质中的可执行代码和数据
- 静态保存的代码
2.进程
- 在CPU及内存中运行的程序代码
- 动态执行的代码
- 父、子进程:每个程序可以创建一个或多个进程
二、PS命令
1.概述
查看静态的进程统计信息。
2.格式以及常用参数
ps [选项] #以简单列表的形式显示出进程信息
常用参数
-a:显示当前终端下的所有进程信息,包括其他用户的进程。与"x"选项结合时将显示系统中所有的进程信息。
-u:使用以用户为主的格式输出进程信息。
-x:显示当前用户在所有终端下的进程信息。
常用的选项组合
ps -aux #以简单列表的形式显示出进程信息
- USER:启动该进程的用户账号的名称。
- PID:该进程在系统中的数字ID号,在当前系统中是唯一的。
- %CPU:CPU占用的百分比。
- %MEM:内存占用的百分比。
- VSZ:该进程使用的虚拟内存量(KB)。
- RSS:该进程占用的物理内存量(KB)。
- TTY:表明该进程在哪个终端上运行。不是从终端启动的进程显示为"?"。注意:pts是远程登录终端 ctrl+ALT F1-F6 tty1 图像界面 2和6 字符界面 ?系统本身执行的进程。
- STAT:该行程的状态:- D:不可中断的休眠状态;R:正在运行状态;S:处于休眠状态,可被唤醒;T:停止状态,可能是在后台暂停或进程处于跟踪 调试状态;Z:僵尸进程,进程已经中止,但是部分程序还在内存当中。
-
D:系统守护进程
T: 调式、程序执行一般停止
R:该程序目前正在运作,或者是可被运作:
S:该程序目前正在睡眠当中(可说是idle状态啦!),但可被某些讯号(signal)唤醒。
T该程序目前正在侦测或者是停止了;
Z:该程序应该已经终止,但是其父程序却无法正常的终止他,造成zombie(疆尸)程序的状态D不可中断状态。它们含意如下:
<:表示进程运行在高优先级上
N:表示进程运行在低优先级上
L:表示进程有页面锁定在内存中
s:表示进程是控制进程s:
l:表示进程是多线程的
+:表示当前进程运行在前台
T:调式、程序执行一般停止 - TIME:该进程实际使用CPU运行的时间
- COMMAND:进程的启动命令
3.ps -elf
将以长格式显示系统中的进程信息。
选项 | 作用 |
e | 显示系统内的所有进程信息。 |
l(小写L) | 使用长格式显示进程信息。 |
f | 使用完整的格式显示进程信息。 |
各列的解释
- F:内核分配给进程的系统标记。
- S:进程的状态。
- UID:启动这些进程的用户。
- PID:进程的进程ID。
- PPID:父进程的进程号(如果该进程是由另一个进程启动的)。
- C:进程生命周期中的CPU利用率。
- PRI:进程的优先级(越大的数字代表越低的优先级)。
- NI:谦让度值用来参与决定优先级。
- ADDR:进程的内存地址。
- SZ:假如进程被换出,所需交换空间的大致大小。
- WCHAN:若该进程在睡眠,则显示睡眠中的系统函数名。
- STIME:进程启动时的系统时间。
- TTY:进程启动时的终端设备。
- TIME:运行进程需要的累计CPU时间。
- CMD:进程的启动命令。
常见的进程状态
- -D: 不可被唤醒的睡眠状态,通常用于I/o情况。
- -R:该进程正在运行。
- -S:该进程处于睡眠状态,可被唤醒。
- -T:停止状态,可能是在后台暂停或进程处于除错状态。
- -W:内存交互状态(从2.6内核开始无效)。
- -X:死掉的进程(应该不会出现)。
- -Z:僵尸进程。进程已经中止,但是部分程序还在内存当中。
- -<:高优先级(以下状态在BSD格式中出现)。
- -N:低优先级。
- -L:被锁入内存。
- -s:包含子进程。
- -l:多线程(小写L)。
- -+:位于后台。
- -C:进程占用CPU的百分比
三、TOP命令
1.概述
- 指查看进程信息,通常理解为查看动态进程排名信息。
- Linux 中的 top 命令就像是 Windows 中的任务管理器。它会以列表的形式展示出系统的当前状态以及进程信息,并且定时刷新,同时也支持一些交互性的操作。
2.详细过程
上述输出信息中,开头部分显示了系统任务(Tasks)、CPU占用、内存占用(Mem)、交换空间(Swap)等汇总信息,汇总信息下方依次显示当前进程的排名情况。相关信息的含义表述如下:
- 04:55:22 当前时间
- up 23:29 系统运行时间,说明此服务器连续运行23分29秒
- 2 users 当前登录用户数
- local average:0.00,0.01, 0.05 系统负载,即任务队列的平均长度。三个数值分别为1分钟,5分钟,15分钟前到现在的平均值。
- 系统任务(Tasks)信息:total,总进程数;running,正在运行的进程数;sleeping,休眠的进程数;stopped,中止的进程数;zombie,僵死无响应的进程数。
- CPU占用信息:us,用户占用; sy,内核占用; ni,优先级调度占用; id,空闲CPU; wa,I/O等待占用; hi,硬件中断占用; si,软件中断占用; st,虚拟化占用。要了解空闲的CPU百分比,主要看%id部分。
- 内存占用信息(Mem):total,总内存空间; free,空闲内存; used,已用内存; buff/cache,物理内存和交换内存的缓冲区总和。
- 交换空间(Swap)占用:total,总交换空间; free,空闲交换空间; used,已用交换空间; availMem,可用物理空间。
详细说明
- Tasks:209 total,进程总数
- 1 running 正在运行的进程数
- 208 sleeping 睡眠的进程数
- 0 stopped 停止的进程数
- 0 zombie 僵尸进程数
- %CPU(s):0.0us 系统用户进程使用CPU百分比
- 5.9 sy 内核中的进程占用CPU百分比 优先级调度占用
- 0.0 ni 用户进程空间内改变优先级的进程占用CPU百分比
- 94.1 id 空闲CPU百分比
- 0.0 wa cpu等待I/O完成的时间总量。
- Mem:3861508 total 物理内存总量
- 2061880 free 空闲内存总量
- 784900 used 使用的物理内存总量
- 1014728 buff/cache 用作内核缓存的内存量。 和 free -k 一个意思
- Swap:4095996 total 交换区总量
- 4095446 free 空闲交换区总量
- 0 used 使用的交换区总量
- 2721288 avail Mem 总的可利用内存是多少
行进程信息
- PID:进程id。
- USER:进程所有者的用户名。
- PR:优先级。
- NI:谦让度值。负值表示高优先级,正值表示低优先级。
- VIRT:进程使用的虚拟内存总量,单位kb。
- RES:进程使用的物理内存大小,单位kb。
- SHR:共享内存大小,单位kb。
- S:进程状态。
- %CPU:上次更新到现在的CPU时间占用百分比。
- %MEM:进程使用的物理内存百分比。
- TIME+:进程使用的CPU时间总计,单位1/100秒。
- COMMAND :命令名/命令行。
3.top命令全屏操作界面快捷键
默认3秒刷新一次,按s修改刷新时间,按空格立即刷新。
P键:根据CPU使用百分比大小进行排序
M 键:根据驻留内存大小进行排序
T键:按时间排序
N 键:根据启动时间进行排序
数字1 键:显示CPU个数和状态
h键可以获取top程序的在线帮助信息,q键则可以正常退出top程序 。
四、查看进程信息pgrep
pgrep命令
- 根据特定条件查询进程PID信息
常用参数:
- -l:选项可同时输出对应的进程名以及PID
- -u:选项查询特定用户的进程
- -t:选项查询在特定终端运行的进程
五、查看进程信息pstree
pstree命令
- 以树形结构列出进程信息
常用参数:
- -a:显示完整信息
- -u:列出对应用户名
- -p:列出对应的PID号
六、进程的启动方式
手工启动
- 前台启动:用户输入命令,直接执行程序
- 后台启动:在命令行尾加入"&"符号
调度启动
- 使用at命令,设置一次性计划任务
- 使用crontab命令,设置周期性计划任务中断正在执行的命令
中断正在执行的命令:ctrl+c
终止指定PID号的进程:kill(-9选项用于强制终止)
终止指定名称的所有进程:killall(-9选项用于强制终止)
根据特定条件终止相应的进程:pkill
常用命令选项
- -U:根据进程所属的用户名终止相应进程
- -t:根据进程所在的终端终止相应进程
- -l:选项可同时输出对应的进程名以及PID
七、计划任务管理
1.at命令
概述:一次性计划任务
at [HH:MM] [yyyy-mm-dd] #不带年月日为今天执行
at>需要执行的指令
at>
#Crtl+D键可以提交任务
job 1 at xxxxxxxxxx
atq #查看未执行的一次性计划任务
atrm 4 #删除第4条任务
2.crontab 命令
概述:周期性计划任务
全局配置文件,位于文件:/etc/contab
系统默认的设置,位于目录:/etc/cron.*/
用户定义的设置,位于文件:/var/spool/cron/用户名
编辑计划任务
crontab -e [-u 用户名] ## -u缺省时默认为当前用户,超级用户才可以用-u
查看计划任务
crontab -l [-u 用户名]
删除计划任务
crontab -r [-u 用户名]
3.crontab任务配置的格式
时间数值的特殊表示方法
- *表示该范围内的任意时间
- ,表示间隔的多个不连续时间点
- -表示一个连续的时间范围
- /表示间隔的时间频率