目录
一、程序和进程的关系
1、程序
保存在硬盘、光盘等介质中的可执行代码和数据
静态保存的代码,文件静止
2、进程
在CPU及内存中运行的程序代码
动态执行的代码,运行中的代码
父、子进程
每个程序可以创建一个或多个进程
3、线程
线程(Thread)是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位
一个进程至少有一个执行线程;
线程也被称为轻量级进程;
线程是进程内部的一部分;
二、查看进程信息
1、PS
查看静态的进程统计信息
ps aux
-a:显示当前终端下的所有进程信息,包括其他用户的进程,与“x”选项结合时将显示系统中所有的进程信息
-u:使用以用户为主的格式输出进程信息
-x:显示当前用户在所有终端下的进程信息。
USER:启动该进程的用户账号的名称。
PID:该进程在系统中的数字 ID 号,在当前系统中是唯一的。
%CPU:CPU 占用的百分比。
%MEM:内存占用的百分比。
VSZ:该进程使用的虚拟内存量(KB)。
RSS:该进程占用的物理内存量(KB)。
TTY:表明该进程在哪个终端上运行,不是从终端启动的进程则显示为?
STAT:该进程的状态(D:不可中断的休眠状态:R:正在运行状态;S:处于休眠状态,可被唤醒;T:停止状态,可能是在后台暂停或进程处于跟踪调试状态: Z:僵尸进程,进程已经中止,但是部分程序还在内存当中)
D:系统守护进程
T:调式、程序执行一般停止
R :该程序目前正在运作,或者是可被运作;
S :该程序目前正在睡眠当中 (可说是 idle 状态啦!),但可被某些讯号(signal) 唤醒。T :该程序目前正在侦测或者是停止了;
Z :该程序应该已经终止,但是其父程序却无法正常的终止他,造成 zombie (疆尸) 程序的状态D 不可中断状态.
进程的状态:
-D:不可被唤醒的睡眠状态,通常用于 I/O 情况。
-R:该进程正在运行。
-S:该进程处于睡眠状态,可被唤醒。
-T:停止状态,可能是在后台暂停或进程处于除错状态。
-W:内存交互状态(从 2.6 内核开始无效)。
-X:死掉的进程(应该不会出现)。
-Z:僵尸进程。进程已经中止,但是部分程序还在内存当中。
-<:高优先级(以下状态在 BSD 格式中出现)。
-N:低优先级。
-L:被锁入内存。
-s:包含子进程。
-l:多线程(小写 L)。
-+:位于后台。
-C:进程占用CPU的百分比
START:启动该进程的时间。
TIME:该进程占用的 CPU 时间。
COMMAND:启动该进程的命令的名称
2、长格式显示进程
ps -elf--将以长格式显示系统中的进程信息
-e:显示系统内的所有进程信息。
-1:使用长格式显示进程信息。
-f:使用完整的格式显示进程信息。.
各列的解释:
F:内核分配给进程的系统标记。
S:进程的状态。
UID:启动这些进程的用户。
PID: 进程的进程ID.
PPID:父进程的进程号(如果该进程是由另一“个进程启动的)
C:进程生命周期中的CPU利用率。
PRI:进程的优先级(越大的数字代表越低的优先级)。
NI: 谦让度值用来参与决定优先级。
ADDR:进程的内存地址。
SZ:假如进程被换出,所需交换空间的大致大小。
WCHAN:若该进程在睡眠,则显示睡眠中的系统函数名。
STIME:进程启动时的系统时间。
TTY:进程启动时的终端设备。 pts/0255代表虚拟终端,一般是远程连接的终端;tty1tty7 代表本地控制台终端
TIME:运行进程需要的累计CPU时间。
CMD:进程的启动命令。
三、查看进程信息
1、pgrep
pgrep---根据特定条件查询进程PID
-l:显示进程名
-U:指定特定用户
-t:指定终端
2、pstree
pstree---以树状结构列出进程信息
-a:显示出完整信息
-u:列出对应用户名
-p:列出对于的ID号
四、进程的启动方式
1、手动启动
前台启动:用户输入命令,直接执行程序
后天启动:在命令行尾加入“&”符号
输出信息中包括后台任务序号、PID号
2、调度启动
使用at命令,设置一次性计划任务
使用crontab命令,设置周期性计划任务
五、进程的前后台调度
1、Ctrl+Z组合键
将当期进程挂起,即调入后天并停止执行
2、jobs命令
查看处于后台的任务列表
3、fg命令
将后台进程恢复到前台运行,可指定任务序号
六、终止进程的运行
1、Ctrl+C
中断正在执行的命令
2、kill、killall命令
kill用于终止指定的PID进程
killall用于终止指定名称的所有进程
-9选项用于强制终止
3、pkill
根据特定条件终止相应的进程
常用命令选项:
-U:根据进程所属的用户名终止相应进程
-t:根据进程所在的终端终止相应进程
七:计划任务管理
1、at命令
at--一次性计划任务
at {HH.MM] [yyy-mm-dd]
设置20:57关闭
2、crontab命令
1.crontab
按照预先设置的时间周期(分钟、小时、天......)重复执行用户指定的命令操作
属于周期性计划任务
主要设置文件:
全局配置文件,位于文件:/etc/crontab
系统默认的设置,位于目录:/etc/cron.*/
用户定义的设置,位于文件:/etc/crontab/用户名
2.管理crontab计划任务
编辑计划任务
crontab -e [-u 用户名]
查看计划任务
crontab -l [-u 用户名]
删除计划任务
crontab -r [-u 用户名]
3、crontab任务配置的格式
分钟 小时 日期 月份 星期几 run_command
字段 | 说明 |
分钟 | 取值从0到59之间的任意整数 |
小时 | 取值从0到23之间的任意整数 |
日期 | 取值从1到31之间的任意整数 |
月份 | 取值从1到12之间的任意整数 |
星期 | 取值从0到7之间的任意整数,0或者7代表星期日 |
命令 | 要执行的命令或程序脚本 |
1.时间数值的特殊表示方法
*:表示该范围内的任意时间
,:表示间隔的多个不连续时间点
— :表示一个连续的时间范围
/:指定间隔上午时间频率
例:
0 17 * * 1-5 周一到周五每天17:00
30 8 * * 1,3,5 每周一、三、五的8点30分
0 8-18/2 * * * 8点到18点之间每2小时
0 * */3 * * 每三天
八、总结
命令要记清楚,了解命令的含义